j.doc
Skill0 starsChanged 22 days agoApache-2.0View on GitHub
Generate or update a documentation file by resolving a target path to a clear documentation objective before writing.
In this repository151 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- j.brainstormSkill
- j.breakSkill
- j.btwSkill
- j.check-inSkill
- j.clearifySkill
- j.close-storySkill
- j.cloud-connectSkill
- j.commitSkill
- j.connectSkill
- j.continueSkill
- j.conventionsSkill
- j.dashboard-shareSkill
- j.dashboardSkill
- j.deep-diveSkill
- j.distributeSkill
- j.doc-syncSkill
- j.doooSkill
- j.doSkill
- j.jenga-configSkill
- j.jenga-permission-levelSkill
- j.jengaSkill
- j.errorSkill
- j.evaluateSkill
- j.examplifySkill
- j.gitignoreSkill
- j.helpSkill
- j.ideaSkill
- j.improveSkill
- j.initSkill
- j.jbpSkill
- j.lgtmSkill
- j.pi-planSkill
- j.playbook-newSkill
- j.playbookSkill
- j.proceedSkill
- j.publishSkill
- j.reconcile-originSkill
- j.reconcileSkill
- j.redoSkill
- j.skillifySkill
- j.smoke-testSkill
- j.spinoffSkill
- j.statusSkill
- j.testSkill
- j.todoSkill
- j.toolsSkill
- j.unchartedSkill
- j.wtfSkill
- skill-nameSkill
- j.brainstormSkill
- j.breakSkill
- j.btwSkill
- j.check-inSkill
- j.clearifySkill
- j.close-storySkill
- j.cloud-connectSkill
- j.commitSkill
- j.connectSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
48 rules. About 0 are common, 25 are distinctive, and 23 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈25
Distinctive · estimate
This author's own choices. Worth a look.
23
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 34
If target-path is omitted, default to README.md.
- Very specific: line 35
If the remainder starts with update:, strip that prefix, then trim again before resolving the target path.
- Very specific: line 36
If target-path is provided, use it exactly as written after /doc.
- Distinctive: line 37
Do not guess additional arguments or rewrite the requested path.
- Very specific: line 47
After target resolution, all generation must operate on a synthesis context object.
- Very specific: line 76
If the shared collector from E24_S03 is not yet merged, construct a temporary context with the same field names so later steps remain …
- Very specific: line 82
Read default_target from skills/j-doc/assets/path-objectives.yaml.
- Very specific: line 83
Remove the /doc command token from the invocation.
- Very specific: line 85
If the trimmed remainder starts with the exact prefix update:, remove that prefix and trim the remainder again.
- Very specific: line 86
If nothing remains, set target_path to default_target.
- Distinctive: line 106
If a match exists, set:
- Distinctive: line 110
If no match exists, stop and use the ambiguity gate in Step 4.
- Distinctive: line 114
Before any synthesis or writing work, clearly surface the resolved contract in this shape:
- Distinctive: line 125
If the matched rule includes section guidance, carry it forward as constraints for the subsequent documentation work.
- Very specific: line 129
If target_path is not present in skills/j-doc/assets/path-objectives.yaml:
- Very specific: line 131
Ask the user exactly: What should <target_path> document?
- Distinctive: line 132
Do not guess the objective.
- Distinctive: line 133
Do not proceed with documentation generation or updates until the user answers.
- Very specific: line 138
Start from the E24_S03 synthesis context when it is available.
- Very specific: line 139
Ensure target_path and objective from Steps 1–3 are copied into the context.
- Very specific: line 141
If any field is temporarily unavailable because E24_S03 has not landed yet, gather the missing evidence manually and store it under the …
- Distinctive: line 148
Read the current file before generating anything.
- Distinctive: line 154
Do not carry forward stale factual claims that conflict with the new evidence.
- Very specific: line 157
If the target file does not exist, keep existing_intent = null.
- Very specific: line 161
Run python3 skills/j-doc/scripts/resolve_last_update.py <target_path> from the repository root.
- Distinctive: line 163
Treat a board item as provenance only when all of the following are true:
- Very specific: line 167
If multiple board items match, select the most recent date_completed and store it in synthesis_context.last_update.
- Very specific: line 168
If no matching provenance is found, set synthesis_context.last_update = "unknown".
- Distinctive: line 174
Start the file with YAML frontmatter for provenance, even when provenance could not be resolved:
- Very specific: line 182
Use the resolved synthesis_context.last_update value in that frontmatter.
- Distinctive: line 184
Treat the generated output as the entire authoritative file.
- Distinctive: line 185
Do not patch a single section, append new text to the end, or leave untouched legacy sections in place.
- Distinctive: line 186
Keep the output valid Markdown.
- Distinctive: line 187
When writing, replace the old file contents in one operation.
- Very specific: line 191
When target_path = README.md, generate the full document around the resolved project-overview contract.
- Distinctive: line 209
Keep the section concise and factual.
- Distinctive: line 211
Prefer a tight narrative plus bullets over repetitive prose.
- Very specific: line 223
Only add ## Examples to README.md when the synthesis context supports a grounded project-type inference.
- Distinctive: line 227
Use the synthesis context first, then reinforce it with manifests and source layout:
- Very specific: line 250
Every example must come from real capabilities present in features, getting_started, sources_used, or retained existing_intent.
- Distinctive: line 255
Do not include placeholder examples, pseudo-commands, or guessed endpoints.
- Distinctive: line 256
If you cannot produce two grounded examples, omit the section instead of improvising.
- Distinctive: line 285
Document parameters, request bodies, return values, and notable errors.
- Very specific: line 286
Use sources_used and board_items to ground scope.
- Distinctive: line 311
Document flags with names, accepted values, defaults, and effects when evidence exists.
- Distinctive: line 332
Use manifests, repo scripts, and existing maintainer guidance to describe setup.
- Distinctive: line 351
If version tags do not exist, group by date-based headings instead.
- Distinctive: line 353
Keep newest entries first.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Doc — Documentation Synthesis and Regeneration
skills/j-doc/ is the canonical, hand-edited directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the E50 reopening of 2026-09-09, which promoted skills/j-doc/ from generated twin to sole canonical form). The j- prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see project/documentation/skill-authoring.md's "Invocation Convention").
⚠️
scripts/generate-j-alias.shwas retired byE50_S14and no longer exists — there is nothing to run. This file was previously generated from a bareskills/doc/SKILL.mdsource;E50_S15deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
Input Format
/doc [target-path]- If
target-pathis omitted, default toREADME.md. - If the remainder starts with
update:, strip that prefix, then trim again before resolving the target path. - If
target-pathis provided, use it exactly as written after/doc. - Do not guess additional arguments or rewrite the requested path.
Reference Asset
Load skills/j-doc/assets/path-objectives.yaml before resolving the documentation objective. Treat it as the source of truth for the default_target, known target paths, and their structural requirements.
For extended usage guidance, provenance notes, and board-author tips, see skills/j-doc/README.md.
Synthesis Context Contract
After target resolution, all generation must operate on a synthesis context object. E24_S03 is responsible for producing the final implementation, but this story defines the field contract that downstream generation must consume.
target_path: README.md
objective: project overview
project_name: Jenga AI
project_description: Structured multi-agent development workflow
features: []
getting_started: []
board_items: []
conflicts_resolved: []
sources_used: []
existing_intent: null
last_update: nullRequired fields from E24_S03:
target_pathobjectiveproject_nameproject_descriptionfeaturesgetting_startedboard_itemsconflicts_resolvedsources_usedexisting_intentlast_update
If the shared collector from E24_S03 is not yet merged, construct a temporary context with the same field names so later steps remain compatible. last_update is resolved during the provenance step below.
Instructions
1. Parse the target path
- Read
default_targetfromskills/j-doc/assets/path-objectives.yaml. If it is missing, fall back toREADME.md. - Remove the
/doccommand token from the invocation. - Trim the remaining text.
- If the trimmed remainder starts with the exact prefix
update:, remove that prefix and trim the remainder again. - If nothing remains, set
target_pathtodefault_target. - Otherwise, set
target_pathto the trimmed remainder.
docs/...paths are the user's own files, not a framework default./docnever invents a destination underdocs/: with no argument it targetsREADME.md, and with an argument it documents exactly the path the user named (docs/API.mdbelow is an example of a consumer's own file). If you need to choose a home for new maintainer-internal documentation yourself, resolve it from thedocumentationpath (paths.documentation, defaultproject/documentation) inproject/configs/workflow.json.docs/is reserved for content meant for a published site (seeCLAUDE.md's "Documentation Placement").
Examples:
/doc→target_path = README.md/doc docs/API.md→target_path = docs/API.md/doc update: docs/API.md→target_path = docs/API.md/doc docs/CLI.md→target_path = docs/CLI.md
2. Resolve the objective from the rule table
- Read
skills/j-doc/assets/path-objectives.yaml. - Find an entry whose
pathexactly matchestarget_path. - If a match exists, set:
objectiveto the entry'sobjectiveobjective_summaryto the entry'ssummaryrequired_sections/optional_sectionsfrom the entry when present
- If no match exists, stop and use the ambiguity gate in Step 4.
3. Surface the resolved contract before continuing
Before any synthesis or writing work, clearly surface the resolved contract in this shape:
Resolved /doc target
- target_path: <target_path>
- objective: <objective>
- summary: <objective_summary>
- required_sections: <required_sections when present>
- optional_sections: <optional_sections when present>If the matched rule includes section guidance, carry it forward as constraints for the subsequent documentation work.
4. Ambiguity gate for unknown targets
If target_path is not present in skills/j-doc/assets/path-objectives.yaml:
- Ask the user exactly:
What should <target_path> document? Please describe the objective. - Do not guess the objective.
- Do not proceed with documentation generation or updates until the user answers.
- Once the user clarifies, treat their response as the
objective, setobjective_summaryfrom the same clarification when helpful, surface the resolved contract, and continue.
5. Load or assemble the synthesis context
- Start from the E24_S03 synthesis context when it is available.
- Ensure
target_pathandobjectivefrom Steps 1–3 are copied into the context. - Populate
project_name,project_description,features,getting_started,board_items,conflicts_resolved, andsources_usedfrom the evidence collector. - If any field is temporarily unavailable because E24_S03 has not landed yet, gather the missing evidence manually and store it under the same field names.
- Initialise
existing_intenttonullbefore inspecting the target file.
6. Read the existing target before generation
/doc owns the full target file. If the target already exists:
- Read the current file before generating anything.
- Extract maintainer intent that may still matter after regeneration, such as:
- custom sections that still fit the target objective
- warnings, caveats, migration notes, or known-issue callouts
- terminology preferences or audience cues
- maintainers' explicit scope boundaries
- Do not carry forward stale factual claims that conflict with the new evidence.
- Save the retained intent into
synthesis_context.existing_intent.
If the target file does not exist, keep existing_intent = null.
7. Resolve last_update provenance before writing
- Run
python3 skills/j-doc/scripts/resolve_last_update.py <target_path>from the repository root. - The resolver must scan
project/board/epics/,project/board/stories/, andproject/board/tasks/. - Treat a board item as provenance only when all of the following are true:
statusis exactlyDoneorPasseddocsis a YAML list that containstarget_pathas an exact repo-relative string matchdate_completedis present and parses asYYYY-MM-DD
- If multiple board items match, select the most recent
date_completedand store it insynthesis_context.last_update. - If no matching provenance is found, set
synthesis_context.last_update = "unknown". This is the required fallback because it keeps the frontmatter shape stable while making the missing provenance explicit. - Ignore board items in any other status, items missing
docs, and items whosedocsentry uses a non-matching path form.
8. Generate a complete replacement file
- Build a full file string from the synthesis context and the resolved target objective.
- Start the file with YAML frontmatter for provenance, even when provenance could not be resolved:
---
last_update: <YYYY-MM-DD or unknown>
---- Use the resolved
synthesis_context.last_updatevalue in that frontmatter. Emitunknownverbatim when no completed board item provides provenance. - This fallback is mandatory: do not omit the
last_updatekey when provenance is missing. - Treat the generated output as the entire authoritative file.
- Do not patch a single section, append new text to the end, or leave untouched legacy sections in place.
- Keep the output valid Markdown.
- When writing, replace the old file contents in one operation.
9. Generate README.md for the project-overview objective
When target_path = README.md, generate the full document around the resolved project-overview contract.
Required structure
# <project_name>
## Description
...
## Getting Started
...Description rules
- Source Description content from
project_description,features, and any still-validexisting_intent. - Explain what the project is, what problem it solves, and who it is for.
- Keep the section concise and factual.
- Cap the section at 1000 words maximum.
- Prefer a tight narrative plus bullets over repetitive prose.
Getting Started rules
- Source the section from
getting_startedfirst. - Fill missing setup detail from concrete manifests and entrypoints already present in the codebase (for example
package.json,pyproject.toml,go.mod, startup scripts, or checked-in app packages). - Cover install, configure, and run steps only when evidence exists.
- Preserve useful setup warnings from
existing_intentwhen they are still valid. - Output valid Markdown lists or numbered steps.
10. Conditionally include a README Examples section
Only add ## Examples to README.md when the synthesis context supports a grounded project-type inference.
Infer the project type from evidence
Use the synthesis context first, then reinforce it with manifests and source layout:
- CLI indicators:
bininpackage.json- Python CLI entrypoints such as
[project.scripts]/[tool.poetry.scripts] - CLI-focused board items or feature descriptions
- command-oriented code or existing CLI docs
- API indicators:
- web-framework dependencies
- route/controller files
openapi.yaml/openapi.yml- board items describing endpoints or request/response behavior
- Library / SDK indicators:
- no CLI
bin - export-heavy modules or public interfaces
- registry-publishing metadata
- board items describing integration from another project
- no CLI
Choose the strongest evidenced type in this priority order when multiple types appear: explicit synthesis-context evidence, manifest metadata, source-layout evidence, then board-item wording. If no type can be supported confidently, omit the Examples section entirely.
Examples rules
- Generate at least two concrete examples when the section is included.
- Every example must come from real capabilities present in
features,getting_started,sources_used, or retainedexisting_intent. - Match the example shape to the inferred type:
- CLI → command invocations with realistic flags and outcomes
- API → request/response examples such as
curlor HTTP snippets - Library / SDK → import-and-use code snippets
- Do not include placeholder examples, pseudo-commands, or guessed endpoints.
- If you cannot produce two grounded examples, omit the section instead of improvising.
11. Generate non-README targets from the rule table
For every known non-README target, the path-to-objective rule table determines the file structure. Generate a full document that satisfies the matched rule.
docs/API.md — API reference documentation
Required shape:
# API Reference
## Overview
...
## Endpoints or Interfaces
### <module or route group>
- Signature / method + path
- Parameters or request fields
- Return values or response shape
## Request and Response Details
...Rules:
- Group content by module, route family, or interface namespace.
- Include function signatures or HTTP method/path pairs when evidence exists.
- Document parameters, request bodies, return values, and notable errors.
- Use
sources_usedandboard_itemsto ground scope; do not invent undocumented endpoints.
docs/CLI.md — CLI usage guide
Required shape:
# CLI Guide
## Overview
...
## Commands
...
## Flags
...
## Examples
...Rules:
- Derive the command name from CLI entrypoints such as
package.json#bin. - List commands and subcommands with concise descriptions.
- Document flags with names, accepted values, defaults, and effects when evidence exists.
- Include usage examples grounded in real workflows from the synthesis context.
docs/CONTRIBUTING.md — contributor guide
Required shape:
# Contributing
## Development Setup
...
## Workflow
...
## Contribution Expectations
...Rules:
- Use manifests, repo scripts, and existing maintainer guidance to describe setup.
- Explain branch, PR, review, and testing expectations only from repository evidence.
- Carry forward still-valid maintainer norms captured in
existing_intent.
CHANGELOG.md — changelog / release notes
Required shape:
# Changelog
## <version or date heading>
### Notable Changes
- ...Rules:
- Derive entries from
git log; do not fabricate releases. - Group entries by version tag when tags exist.
- If version tags do not exist, group by date-based headings instead.
- Summarize each entry from commit subjects and, when needed, nearby commit context.
- Keep newest entries first.
12. Continue using the resolved objective
After the target path and objective are resolved, use them as the contract for all subsequent /doc work. Known paths must bypass the ambiguity gate, and all later decisions about evidence gathering, scope, regeneration, and structure must honor the surfaced target_path and objective instead of inferring a different goal.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

