From 79b5ce60afa79aceee226650ef025ef5d3c7887a Mon Sep 17 00:00:00 2001 From: Tobias Trusch Date: Sat, 11 Jul 2026 13:23:33 +0200 Subject: [PATCH] Add project documentation skill --- .agents/skills/AGENTS.md | 1 + .agents/skills/documentation/SKILL.md | 164 ++++++++++++++++++++++++++ AGENTS.md | 3 +- AGENTS.template.md | 2 + CHANGELOG.md | 4 + docs/skills.md | 11 ++ install.sh | 2 +- test/fixtures/sample-archive.tar.gz | Bin 19886 -> 22797 bytes test/integration/install.bats | 2 + 9 files changed, 187 insertions(+), 2 deletions(-) create mode 100644 .agents/skills/documentation/SKILL.md diff --git a/.agents/skills/AGENTS.md b/.agents/skills/AGENTS.md index 55305db..a4fdf26 100644 --- a/.agents/skills/AGENTS.md +++ b/.agents/skills/AGENTS.md @@ -66,6 +66,7 @@ Verify your skill by loading it and checking: | ----- | ------- | | `adapt` | Analyze project and fill in AGENTS.md after installation | | `agent-work` | Create and maintain `.agents/work/` work items | +| `documentation` | Scan, create, update, verify, and promote canonical project documentation | | `feature-planning` | Turn context into plans and paste-ready handoff prompts | | `research` | Research technical topics, saving work-local or reusable findings | | `tmux` | Manage background processes using tmux windows for servers and long-running tasks | diff --git a/.agents/skills/documentation/SKILL.md b/.agents/skills/documentation/SKILL.md new file mode 100644 index 0000000..3e93380 --- /dev/null +++ b/.agents/skills/documentation/SKILL.md @@ -0,0 +1,164 @@ +--- +name: documentation +description: "Scans and maintains evidence-backed project documentation. Use for docs initialization, architecture, ADRs, runbooks, APIs, or work-item promotion. Triggers on: documentation scan, initialize docs, document architecture, update docs." +--- + +# Documentation + +Discover the repository's documentation convention, assess selected topics against repository evidence, and create or update only the canonical documents the user wants. + +## Core Rules + +1. Treat project documentation as durable human-and-agent knowledge, separate from task state in `.agents/work/`. +2. Discover an existing canonical documentation location before proposing `docs/`. +3. Run scans read-only. Show coverage and recommendations before writing unless the user already selected topics and asked for changes. +4. Create directories only when adding a useful document; never scaffold an empty taxonomy. +5. Derive technical facts from current repository evidence. Label unknown policy or intent instead of guessing. +6. Link to existing generated or canonical material instead of duplicating it. +7. Preserve the repository's existing style, structure, and documentation tooling. + +## Modes + +- **Scan**: inventory documentation, evaluate selected or all topics, and report gaps without editing. +- **Initialize**: establish a canonical documentation location after user approval. +- **Create or update**: write selected documents from verified evidence. +- **Verify**: compare existing documentation with code, tests, schemas, configuration, and infrastructure. +- **Promote**: move enduring knowledge from a work item into canonical project documentation and link both locations. + +## Workflow + +### 1. Discover Existing Documentation + +Inspect likely entrypoints before choosing a location: + +```text +README.md +CONTRIBUTING.md +SECURITY.md +docs/ +doc/ +documentation/ +architecture/ +adr/ +.github/ +package- or module-level README files +documentation-site configuration and build scripts +``` + +Also inspect links from `README.md` and `AGENTS.md`. + +- If a canonical location exists, use it. +- If documentation is intentionally distributed, preserve that arrangement. +- If competing locations make ownership ambiguous, ask which is canonical. +- If no canonical location exists, offer to initialize `docs/`; do not create it without user approval. + +### 2. Choose Scan Topics + +Use the topics requested by the user. If none are specified, scan all topics at summary depth and let the user select which findings to act on. + +| Topic | Typical contents | +| --- | --- | +| `architecture` | Current structure, views, concepts, diagrams, and architecture decisions | +| `development` | Local setup, testing, debugging, and conventions | +| `operations` | Deployment, monitoring, configuration, backup, recovery, and rollback | +| `security` | Threat model, trust boundaries, authentication, authorization, secrets, and security rules | +| `runbooks` | Actionable incident and operational procedures | +| `specifications` | Durable behavioral, protocol, state, and interface contracts | +| `api` | API contracts, authentication, errors, versioning, and examples | +| `data` | Schema ownership, migrations, consistency, retention, and classification | +| `product` | Stable domain language, roles, capabilities, workflows, and product invariants | +| `contributing` | Review, release, contribution, and required-check processes | + +These names are a proposed taxonomy, not mandatory paths. Follow established repository conventions such as a root `CONTRIBUTING.md`, generated API reference, or existing `doc/adr/` directory. + +### 3. Gather Evidence + +Use the narrowest repository evidence that can support each selected topic: + +| Evidence | Can establish | +| --- | --- | +| Source code | Implemented behavior and boundaries | +| Tests | Expected and protected behavior | +| Schemas and migrations | Structural API and data contracts | +| Configuration and infrastructure | Available mechanisms and deployed topology | +| CI workflows | Enforced checks and contribution flow | +| Existing docs and decisions | Declared intent, policy, and rationale | +| User confirmation | Product intent and organizational policy | + +Do not promote an implementation detail into policy without supporting documentation or user confirmation. Be especially conservative with security, retention, compliance, SLOs, incident response, and product intent. + +### 4. Report the Scan + +Include: + +1. Existing documentation locations and the likely canonical location. +2. Coverage per selected topic: `strong`, `partial`, `missing`, or `insufficient evidence`. +3. Evidence inspected. +4. Suggested action: keep, link, update, create, or confirm with the user. +5. A concise list of candidate documents. + +Example: + +```markdown +| Topic | Coverage | Evidence | Suggested action | +| --- | --- | --- | --- | +| Architecture | Partial | Service modules, deployment config | Add overview | +| API | Strong | OpenAPI source | Link; do not duplicate | +| Runbooks | Missing | No operational procedure found | Requires operator input | +``` + +For a scan-only request, stop here. + +### 5. Create or Update Selected Documentation + +After the user selects topics, create only documents supported by evidence. If initializing `docs/`, start with `docs/README.md` plus the selected content. Add a topic directory only when placing a real document inside it. + +Possible mature structure: + +```text +docs/ +├── architecture/ +├── development/ +├── operations/ +├── security/ +├── runbooks/ +├── specifications/ +├── api/ +├── data/ +├── product/ +└── contributing/ +``` + +Do not create this whole tree by default. + +For generated documents: + +- State current behavior separately from desired policy. +- Add source paths or a short `Sources` section when it helps future verification. +- Mark drafts and unresolved questions clearly. +- Prefer text-based diagram sources when the repository supports them; keep rendered assets beside their source. +- Keep architecture decisions short, one decision per file, with status, context, decision, rationale, consequences, and links. +- Supersede accepted decisions with a new record rather than silently rewriting their history. + +### 6. Promote Work-Item Knowledge + +When a decision or finding under `.agents/work///` becomes relevant to future unrelated work: + +1. Find the repository's canonical documentation or decision location. +2. Create or update the canonical document with the enduring result, not the work-item transcript. +3. Link from the work item to the canonical document and back when useful. +4. Avoid two competing sources of truth. +5. Update `AGENTS.md` only when agents need a concise navigation pointer or universal instruction. + +## Verification + +After writing: + +- Check local links and referenced paths. +- Run the repository's Markdown or documentation checks when available. +- Re-read claims against the evidence used to write them. +- Report anything that still requires domain-owner, security, product, or operations review. + +## Definition Of Done + +Documentation work is done when the canonical location is respected, only selected and evidence-backed documents were changed, navigation points to the new material, relevant checks pass, and unsupported claims are explicitly left as questions rather than presented as facts. diff --git a/AGENTS.md b/AGENTS.md index a4b1054..da12b2a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -30,7 +30,7 @@ dot-agents/ ├── install.sh # Main installation script ├── .agents/ │ ├── work/ # Work-item guidance installed into projects -│ ├── skills/ # adapt, agent-work, feature-planning, research, tmux +│ ├── skills/ # adapt, agent-work, documentation, feature-planning, research, tmux │ ├── research/ # Reusable research notes │ ├── references/ # External reference repos (gitignored) │ └── scripts/ # sync.sh @@ -46,6 +46,7 @@ dot-agents/ | --- | --- | | `Run adapt` | Analyze project and fill in `AGENTS.md` sections | | `Create a new work item for ...` | Create durable `.agents/work/` context | +| `Run a documentation scan` | Assess selected project-documentation topics before writing | | `Research ...` | Investigate and save work-local or reusable findings | | `Create/refine a plan for ...` | Produce implementation-ready tasks in the active plan file | | `Write a handoff prompt for ...` | Produce a paste-ready prompt for a new implementation thread | diff --git a/AGENTS.template.md b/AGENTS.template.md index 6a32311..45a7f55 100644 --- a/AGENTS.template.md +++ b/AGENTS.template.md @@ -47,6 +47,7 @@ project/ │ └── skills/ # Agent skills │ ├── adapt/ │ ├── agent-work/ +│ ├── documentation/ │ ├── feature-planning/ │ ├── research/ │ └── tmux/ @@ -59,6 +60,7 @@ project/ | --- | --- | | `Run adapt` | Analyze project and fill in `AGENTS.md` sections | | `Create a new work item for ...` | Create durable `.agents/work/` context | +| `Run a documentation scan` | Assess selected project-documentation topics before writing | | `Research [topic]` | Investigate and save work-local or reusable findings | | `Create a plan for ...` | Produce implementation-ready tasks in the active plan file | | `Write a handoff prompt for ...` | Produce a paste-ready prompt for a new implementation thread | diff --git a/CHANGELOG.md b/CHANGELOG.md index fc7ed30..2468c9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] +### Added + +- `documentation` skill for discovering existing docs, scanning selected documentation topics, optionally initializing `docs/`, and promoting enduring work-item knowledge without creating empty scaffolding or unsupported claims. + ## [0.3.0] - 2026-06-22 ### Changed diff --git a/docs/skills.md b/docs/skills.md index b8a419a..983f3b6 100644 --- a/docs/skills.md +++ b/docs/skills.md @@ -8,6 +8,7 @@ Skills are specialized instructions that agents load for specific workflows. dot | --- | --- | --- | | [adapt](#adapt) | `Run adapt` | Analyze project, fill in `AGENTS.md` | | [agent-work](#agent-work) | `Create a work item` | Create and maintain `.agents/work/` context | +| [documentation](#documentation) | `Run a documentation scan` | Discover, assess, and maintain canonical project docs | | [feature-planning](#feature-planning) | `Create a plan`, `write a handoff prompt` | Turn context into plans and new-thread prompts | | [research](#research) | `Research [topic]` | Investigate and save work-local or reusable findings | | [tmux](#tmux) | `tmux`, `background process` | Manage background processes | @@ -40,6 +41,16 @@ Use it to create work items, list active work, place artifacts deliberately, and **Details:** [.agents/skills/agent-work/SKILL.md](../.agents/skills/agent-work/SKILL.md) +## documentation + +Discovers the repository's existing documentation convention before proposing a location. It can scan selected topics, initialize `docs/` with approval when no canonical location exists, create only needed topic directories, verify docs against repository evidence, and promote enduring work-item decisions into canonical project documentation. + +Available topics include architecture, development, operations, security, runbooks, specifications, API, data, product, and contributing. Scans are read-only by default, and unsupported policy or intent is reported for confirmation rather than invented. + +**Invoke:** `Run a documentation scan for architecture, API, and data` + +**Details:** [.agents/skills/documentation/SKILL.md](../.agents/skills/documentation/SKILL.md) + ## feature-planning Turns work-item context into implementation-ready plans and paste-ready handoff prompts. diff --git a/install.sh b/install.sh index b9dbd94..0752743 100755 --- a/install.sh +++ b/install.sh @@ -481,7 +481,7 @@ format_version_string() { } # Core skills that come from upstream -CORE_SKILLS="adapt agent-work feature-planning research tmux" +CORE_SKILLS="adapt agent-work documentation feature-planning research tmux" RETIRED_CORE_SKILLS="ralph" RETIRED_LEGACY_GUIDANCE_FILES=".agents/plans/AGENTS.md .agents/prds/AGENTS.md .agents/plans/TEMPLATE.md .agents/prds/TEMPLATE.md" diff --git a/test/fixtures/sample-archive.tar.gz b/test/fixtures/sample-archive.tar.gz index ad61b71a2cae6697fc03470cbf7ecdc31747bb55..6cb74c49ac996de187c85578dbdde84799ddf139 100644 GIT binary patch literal 22797 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 z%0A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