一键导入
audit-documentation
Audit Fabrik docs against recently shipped features — files gap issues for undocumented behavior, closes issues whose gaps are now covered
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Audit Fabrik docs against recently shipped features — files gap issues for undocumented behavior, closes issues whose gaps are now covered
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Cut a new Fabrik release — gathers changes since last tag, writes release notes, delegates publication to scripts/cut-release.sh
Bootstrap a project to use Fabrik (the GitHub-Project-driven SDLC pipeline orchestrator that drives Claude Code workers through Specify/Research/Plan/Implement/Review/Validate stages). Use this skill when the user wants to install, set up, initialize, or get started with Fabrik for the first time — especially when they ask "how do I get started with Fabrik", "install Fabrik", "set up Fabrik in this project", or mention Fabrik in a project where no `.fabrik/` directory exists yet. Walks through prerequisites, binary install, GitHub Project board setup, `fabrik init`, secret configuration, and the first run.
Build, test, vet, and format the Fabrik codebase
Check the current state of the Fabrik project board and running workers
| name | audit-documentation |
| description | Audit Fabrik docs against recently shipped features — files gap issues for undocumented behavior, closes issues whose gaps are now covered |
| user_invocable | true |
Compare recently shipped features against USER_GUIDE.md, README.md, and docs/index.md. File GitHub issues for documentation gaps and close existing documentation issues whose gaps are now covered.
/audit-documentation # Scan issues closed in the last 30 days
/audit-documentation --since v0.0.20 # Scan issues referenced in commits since a tag
Known limitation: Rate limits may apply for repos with hundreds of closed issues. The tag-based mode may miss issues if their PRs used Fixes or bare URLs instead of Closes #NNN.
Detect whether --since <tag> was provided:
# Tag-based mode
TAG="v0.0.20" # extracted from --since argument
# Validate tag exists locally
git rev-parse --verify "refs/tags/$TAG" 2>/dev/null
if [ $? -ne 0 ]; then
# Try fetching tags and retry
git fetch --tags origin
git rev-parse --verify "refs/tags/$TAG" 2>/dev/null || {
echo "Error: tag '$TAG' not found locally or on origin. Aborting."
exit 1
}
fi
For the default 30-day mode, compute the cutoff date using Python (portable across macOS and Linux):
CUTOFF_DATE=$(python3 -c "from datetime import datetime,timedelta; print((datetime.now()-timedelta(days=30)).strftime('%Y-%m-%d'))")
echo "Scanning issues closed since: $CUTOFF_DATE"
Tag-based mode (two-pass):
Pass 1 — extract issue numbers from commit messages since the tag:
git log "$TAG..HEAD" --format="%s%n%b" | grep -oE '#[0-9]+' | grep -oE '[0-9]+' | sort -u
Pass 2 — get the tag's commit date, then find merged PRs since that date and extract Closes #NNN references:
TAG_DATE=$(git log -1 --format="%ci" "refs/tags/$TAG" | cut -d' ' -f1)
gh pr list -R handarbeit/fabrik --state merged \
--search "merged:>=$TAG_DATE" \
--json number,body \
--limit 500 \
--jq '.[] | .body' \
| grep -oiE '(closes|fixes|resolves) #[0-9]+' \
| grep -oE '[0-9]+' \
| sort -u
Combine and deduplicate the issue numbers from both passes into a list (e.g. 200 201 205).
Then fetch their full details for use in subsequent steps:
for NUM in $ISSUE_NUMBERS; do
gh issue view "$NUM" -R handarbeit/fabrik --json number,title,labels,body
done
Date-based mode (default 30 days):
Fetch closed issues with their full bodies in one call to avoid rate-limit issues from per-issue view calls:
gh issue list -R handarbeit/fabrik \
--state closed \
--search "closed:>$CUTOFF_DATE" \
--json number,title,labels,body \
--limit 200
From the discovered set, exclude:
documentation — avoid recursive analysis of documentation issues as source materialFor each excluded issue, note: issue number, title, and reason for exclusion.
Log the exclusions in your working notes so you can include them in the final summary.
Read the three documentation targets in full:
cat USER_GUIDE.md
cat README.md
cat docs/index.md
As you read, note which sections are most likely to be affected by recently shipped features — these are the sections to scrutinize during gap analysis.
Fetch all currently open issues labeled documentation:
gh issue list -R handarbeit/fabrik \
--state open \
--label documentation \
--json number,title,body
Keep this list for two purposes:
For each filtered source issue (or group of related issues), compare the feature/behavior described against the three documentation files.
Rules for gap analysis:
For each gap, record:
For each existing open documentation issue from Step 5 where the current docs clearly and completely address the described gap:
gh issue close -R handarbeit/fabrik <number> \
--comment "Closed by /audit-documentation: gap is now covered in current documentation."
Conservatism rule: Only close if the documentation section clearly describes this specific behavior — if in doubt, leave open. Partial coverage does not justify closure.
For each gap from Step 6 that does NOT already have a matching open documentation issue:
# 1. Create the issue, capture the URL
ISSUE_URL=$(gh issue create -R handarbeit/fabrik \
--title "<gap title>" \
--label "documentation" \
--label "fabrik:yolo" \
--body "<issue body — see format below>" \
--json url --jq '.url')
# 2. Add to the Fabrik PM project board (org project #1), capture item ID
ITEM_ID=$(gh project item-add 1 --owner handarbeit \
--url "$ISSUE_URL" \
--format json --jq '.id')
# 3. Set status to Specify
gh project item-edit \
--id "$ITEM_ID" \
--field-id PVTSSF_lADOA8vIBc4BTew-zhAtcsQ \
--project-id PVT_kwDOA8vIBc4BTew- \
--single-select-option-id 29d94fed
Issue body format:
## Documentation Gap
<Clear description of what is missing or inadequately documented in USER_GUIDE.md, README.md, or docs/index.md>
## Problem
<Excerpt of the relevant Problem/Summary from the source issue(s) — keep concise, 2-5 sentences>
## Scope
- USER_GUIDE.md — <which sections need updating>
- README.md — <if relevant>
- docs/index.md — <if relevant>
## Source issues
<list of source issue numbers as #N references>
Keep the body concise — the Specify stage will elaborate as needed.
Print a structured summary of everything the audit did:
## Audit Documentation — Summary
**Period**: <date range or tag range scanned>
**Issues scanned**: <N>
**Issues excluded**: <N>
- <issue#>: <title> — <reason>
- ...
**Documentation gaps found**: <N>
**New gap issues filed** (<N>):
- #<number>: <title>
- ...
**Existing documentation issues closed** (<N>):
- #<number>: <title>
**Existing documentation issues left open** (<N>):
- #<number>: <title> — <reason left open>
If no gaps were found, say so explicitly: "No documentation gaps found — docs appear current."