docs-manager-f61d40 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited docs-manager-f61d40 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Execute a structured 6-phase workflow for managing documentation. Supports two documentation formats (MkDocs sites and standalone markdown files) and three action types (generate, update, change summary).
Execute these phases in order:
agents/docs-writer.md) -- Generates MkDocs-flavored or standard GitHub-flavored Markdown documentation from codebase analysis findings. Used in Phase 5.../../core-tools/skills/deep-analysis/agents/code-explorer.md from the core-tools package) -- Used in Phase 3 for change-summary path analysis.Goal: Determine through user interaction what documentation to create and in what format.
$ARGUMENTSParse the user's input to pre-fill selections:
basic-markdownmkdocschange-summaryIf the intent is clear, present a summary for quick confirmation before proceeding (skip to Step 4). If ambiguous, proceed to Step 2.
If the documentation type is ambiguous or needs confirmation, prompt the user to choose:
What type of documentation would you like to create?
1. "MkDocs documentation site" -- Full docs site with mkdocs.yml, Material theme
2. "Basic markdown files" -- Standalone files like README.md, CONTRIBUTING.md, ARCHITECTURE.md
3. "Change summary" -- Changelog, release notes, commit messageStore as DOC_TYPE = mkdocs | basic-markdown | change-summary.
If `DOC_TYPE = mkdocs`:
Q2: Prompt the user -- Existing project or new setup?
MKDOCS_MODE = existingMKDOCS_MODE = newQ3 (if existing): Prompt the user -- What to do?
Store as ACTION.
Q3 (if new): Prompt the user -- Scope?
Store as MKDOCS_SCOPE. If custom, ask for desired pages (free text).
If `DOC_TYPE = basic-markdown`:
Q2: Prompt the user (multiSelect) -- Which files?
Store as MARKDOWN_FILES. If "Other" is selected, ask for custom file paths/descriptions.
If `DOC_TYPE = change-summary`:
Q2: Prompt the user -- What range?
Follow up for specific range details (tag name, ref pair, etc.).
Present a summary of all selections and prompt the user to choose:
If the user wants to change, loop back to the relevant question.
Proceed to Phase 2.
Goal: Detect project context automatically, conditionally scaffold MkDocs.
package.json, pyproject.toml, Cargo.toml, go.mod, pom.xmlgit remote get-url origin 2>/dev/nulldocs/**/*.md, README.md, CONTRIBUTING.md, ARCHITECTURE.mdmkdocs.yml/mkdocs.yaml, read if foundDOC_TYPE = mkdocs AND MKDOCS_MODE = new)mkdocs.yml, create docs/index.md and docs/getting-started.mdIf MKDOCS_SCOPE = minimal (getting started only): write the scaffold files and skip to Phase 6.
For update modes, determine the approach:
For change-summary, run git log and git diff --stat for the determined range.
Proceed to Phase 3.
Goal: Deep codebase exploration using the deep-analysis skill.
Skip conditions:
change-summary (uses git-based analysis instead -- see below)MKDOCS_SCOPE = minimal)Construct a specific context string based on Phase 1 selections:
| Selection | Analysis Context |
|---|---|
| MkDocs generate | "Documentation generation -- find all public APIs, architecture, integration points, and existing documentation..." |
| MkDocs update | "Documentation update -- identify changes to public APIs, outdated references, documentation gaps..." |
| Basic markdown README | "Project overview -- understand purpose, architecture, setup, key features, configuration, and dependencies..." |
| Basic markdown ARCHITECTURE | "Architecture documentation -- map system structure, components, data flow, design decisions, key dependencies..." |
| Basic markdown API docs | "API documentation -- find all public functions, classes, methods, types, their signatures and usage patterns..." |
| Basic markdown CONTRIBUTING | "Contribution guidelines -- find dev workflow, testing setup, code style rules, commit conventions, CI process..." |
| Multiple files | Combine relevant contexts from above |
Refer to the deep-analysis skill (from the core-tools package) and follow its workflow.
Pass the documentation-focused analysis context from Step 1.
Deep-analysis handles all agent orchestration (reconnaissance, team planning, team creation, explorers + synthesizer).
After deep-analysis, additionally:
git diff --name-only [base-ref] for changed filesgit log --oneline [range] and git diff --stat [range]../../core-tools/skills/deep-analysis/agents/code-explorer.md) to analyze the changed files: Analysis context: Change summary for [range]
Focus area: These files changed in the specified range:
[list from git diff --stat]
For each significant change, identify:
- What was added, modified, or removed
- Impact on public APIs and user-facing behavior
- Whether any changes are breaking
Return a structured report of your findings.Proceed to Phase 4.
Goal: Translate analysis findings into a concrete documentation plan.
MkDocs:
docs/ paths)mkdocs.yml nav updatesBasic Markdown:
Change Summary:
Prompt the user to choose:
Proceed to Phase 5.
Goal: Generate content using docs-writer agents.
DOC_TYPE = change-summary: Use the change summary templates (see below)DOC_TYPE = basic-markdown: See references/markdown-file-templates.md for structural templatesDelegate to documentation writer agents (see agents/docs-writer.md for instructions).
Launch independent pages/files in parallel, then sequential for dependent ones (include generated content from independent pages in the prompt context).
MkDocs prompt template:
Documentation task: [page type -- API reference / architecture / how-to / change summary]
Target file: [docs/path/to/page.md]
Output format: MkDocs
Project: [project name] at [project root]
MkDocs site context:
- Theme: Material for MkDocs
- Extensions available: admonitions, code highlighting, tabbed content, Mermaid diagrams
- Diagram guidance: Follow the technical-diagrams skill conventions -- use Mermaid for all diagrams with dark text on nodes.
- Existing pages: [list of current doc pages]
Exploration findings:
[Relevant findings from Phase 3 for this page]
Existing page content (if updating):
[Current content of the page, or "New page -- no existing content"]
Generate the complete page content in MkDocs-flavored Markdown.Basic Markdown prompt template:
Documentation task: [file type -- README / CONTRIBUTING / ARCHITECTURE / API docs]
Target file: [path/to/file.md]
Output format: Basic Markdown
Project: [project name] at [project root]
File type guidance:
[Relevant structural template from markdown-file-templates.md]
Exploration findings:
[Relevant findings from Phase 3 for this file]
Existing file content (if updating):
[Current content, or "New file -- no existing content"]
Generate the complete file content in standard GitHub-flavored Markdown.
Do NOT use MkDocs-specific extensions (admonitions, tabbed content, code block titles).
Diagram guidance: Follow the technical-diagrams skill conventions -- use Mermaid for all diagrams with dark text on nodes. GitHub renders Mermaid natively.Proceed to Phase 6.
Goal: Write files, validate, present results.
MkDocs:
docs/mkdocs.yml nav -- read current config, add new pages in logical positions, preserve existing structureBasic Markdown:
Change Summary:
MkDocs:
nav exist on diskmkdocs CLI is available, run mkdocs build --strict 2>&1 to check for warnings (non-blocking)Basic Markdown:
Summarize what was done:
For change-summary, present generated outputs directly inline.
Prompt the user to choose from relevant options:
MkDocs:
mkdocs serve is available)Basic Markdown:
If any phase fails:
If the project is not a git repository:
repo_url and repo_name from mkdocs.yml)update action with git-diff mode is unavailable -- fall back to full-scan or targeted modechange-summary action is unavailable -- inform the user and suggest alternativesUse this template when scaffolding a new MkDocs project in Phase 2.
site_name: PROJECT_NAME
site_description: PROJECT_DESCRIPTION
site_url: ""
repo_url: REPO_URL
repo_name: REPO_NAME
theme:
name: material
features:
- navigation.tabs
- navigation.sections
- navigation.expand
- navigation.top
- search.suggest
- search.highlight
- content.code.copy
- content.tabs.link
palette:
- scheme: default
primary: indigo
accent: indigo
toggle:
icon: material/brightness-7
name: Switch to dark mode
- scheme: slate
primary: indigo
accent: indigo
toggle:
icon: material/brightness-4
name: Switch to light mode
markdown_extensions:
- admonition
- pymdownx.details
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
- pymdownx.highlight:
anchor_linenums: true
line_spans: __span
pygments_lang_guess: false
- pymdownx.inlinehilite
- pymdownx.tabbed:
alternate_style: true
- pymdownx.snippets
- attr_list
- md_in_html
- toc:
permalink: true
nav:
- Home: index.md
- Getting Started: getting-started.md| Field | Description | How to Set |
|---|---|---|
site_name | Display name in header and browser tab | Use the project name from package.json, pyproject.toml, Cargo.toml, or directory name |
site_description | Meta description for SEO | Use the project description from manifest file, or summarize from README |
repo_url | Link to source repository | Detect from git remote get-url origin |
repo_name | Display text for repo link | Extract owner/repo from the remote URL |
site_url | Production URL for the docs site | Leave empty during scaffolding -- user can set later |
Use this approach to populate repo_url and repo_name:
# Get the remote URL
REMOTE_URL=$(git remote get-url origin 2>/dev/null)
# Convert SSH to HTTPS if needed
# [email protected]:owner/repo.git -> https://github.com/owner/repo
if [[ "$REMOTE_URL" == git@* ]]; then
REMOTE_URL=$(echo "$REMOTE_URL" | sed 's|git@\(.*\):\(.*\)\.git|https://\1/\2|')
fi
# Extract owner/repo for repo_name
REPO_NAME=$(echo "$REMOTE_URL" | sed 's|.*/\([^/]*/[^/]*\)$|\1|' | sed 's|\.git$||')If not a git repository or no remote is configured, omit repo_url and repo_name from the config.
#### docs/index.md
# PROJECT_NAME
PROJECT_DESCRIPTION
## Overview
Brief overview of what the project does and who it's for.
## Quick Start
Minimal steps to get started:
1. Install the project
2. Run a basic example
3. Explore further documentation
## Documentation
| Section | Description |
|---------|-------------|
| [Getting Started](getting-started.md) | Installation and first steps |#### docs/getting-started.md
# Getting Started
## Prerequisites
List prerequisites here (language runtime, tools, etc.).
## Installation
Installation instructions for the project.
## Basic Usage
A minimal working example demonstrating core functionality.
## Next Steps
Links to further documentation sections.Use these templates when generating change summaries in Phase 5.
Follows Keep a Changelog conventions. Reference the changelog-format skill for additional guidance.
## [Unreleased]
### Added
- Add [feature] with [key capability]
- Add [new component] for [purpose]
### Changed
- Update [component] to [new behavior]
- Refactor [module] for [improvement]
### Fixed
- Fix [bug] that caused [symptom]
### Removed
- Remove [deprecated feature] in favor of [replacement]#### Guidelines
Follows Conventional Commits style.
type(scope): summary of changes
Detailed description of what changed and why. Cover the motivation
for the change and contrast with previous behavior.
Changes:
- List specific modifications
- Include file paths for significant changes
- Note any breaking changes
BREAKING CHANGE: Description of breaking change (if applicable)#### Type Reference
| Type | Use For |
|---|---|
feat | New features |
fix | Bug fixes |
docs | Documentation changes |
refactor | Code restructuring without behavior change |
perf | Performance improvements |
test | Adding or updating tests |
chore | Build, CI, or tooling changes |
#### Guidelines
BREAKING CHANGE: footer for breaking changesCloses #123Scope: This format applies only when the documentation target is an MkDocs site. For basic markdown projects, use Format 1 (Markdown Changelog) as the primary change summary output.
A full documentation page suitable for a changelog or release notes section.
# Changes: VERSION_OR_RANGE
Summary of changes for this release or period.
## Highlights
!!! tip "Key Changes"
Brief summary of the most important changes in this release.
### New Features
#### Feature Name
Description of the new feature and its purpose.
### Improvements
- **Component**: Description of improvement
- **Performance**: Description of optimization
### Bug Fixes
- Fix [issue description] that affected [scenario] (#issue-number)
### Breaking Changes
!!! warning "Breaking Changes"
The following changes require action when upgrading.
#### Change Description
**Before:**// Old API or behavior
**After:**// New API or behavior
**Migration:** Steps to update existing code.
## Affected Files
| File | Change Type | Description |
|------|-------------|-------------|
| `path/to/file` | Modified | Brief description |
## Contributors
- @username -- Description of contribution#### Guidelines
When the user requests a change summary, present the three format options:
| Format | Best For |
|---|---|
| Markdown Changelog | Appending to an existing CHANGELOG.md |
| Git Commit Message | Describing changes in a commit or PR |
| MkDocs Page | Publishing release notes in the documentation site |
The user may select multiple formats. Generate each independently -- they serve different audiences and purposes.
This skill uses agents from two sources:
From this package (dev-tools):
From the core-tools package (cross-reference):
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.