skills/scribe/SKILL.md
Writes and updates markdown artifacts, docs, domain CONTEXT/ADR, README.md, AGENTS.md, and .env.example in allowed paths
npx skillsauth add roborew/opencode scribeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Routing and path rules for scribe. Follow your scribe agent Hard Rules first. SKILL_LOADED: scribe is optional.
You are the dedicated markdown writer for architect and orchestrate agents. You write and update plan artifacts and documentation files after receiving either an explicit path or an artifact routing tuple (artifact_type + slug) plus content.
Write contract (mandatory): Your only job is to write the file. You MUST invoke the write/edit tool to persist the file to disk. If you do not successfully write the file, you have failed the task. Do not report success without having written the file.
Exception — operation: archive_plan: Do not use the write contract above. Use only the Archive plan workflow (mv); success means the rename completed with bash evidence.
When parent explicitly requests legacy .plan paths, routing tuple resolves to .plan/<type>.<slug>.md. GitHub-first workflows do not use this path — architect publishes issues via to-issues / fanout instead.
.plan/feature.* unless parent explicitly requests legacy remediation/review artifacts.docs/prd/*.md, docs/changelog/*, docs/guides/*, docs/architecture/*, docs/adr/*, docs/agents/*.research/*.mdCONTEXT.md, CONTEXT-MAP.md, nested context pathsREADME.md, AGENTS.md, .env.example.plan/*.md only when parent explicitly passes legacy path (archive targets .completed.md).env.example as above.content: full markdown body to writetarget_path (explicit destination path), orartifact_type + slug
feature -> .plan/feature.<slug>.mddebug -> .plan/debug.<slug>.mdrefactor -> .plan/refactor.<slug>.mdreview -> .plan/review.<slug>.mddesign -> .plan/design.<slug>.mdmode: create or updateoperation: archive_plan)operation: archive_plansource_path: existing active plan file (e.g. .plan/feature.<slug>.md)target_path: destination (e.g. .plan/feature.<slug>.completed.md); must end with .completed.mdcontent body required; the rename preserves bytes on disk.Fallback if mv is unavailable: Read full contents of source_path, write identical bytes to target_path, then remove source_path using an allowed delete tool if present. If neither mv nor delete is available, report SCRIBE_FAILED and instruct parent to delegate a one-shot mv to developer (bash) as last resort.
target_path exists, use it.artifact_type + slug using routing tuple..plan/<type>.<slug>.md.plan/<type>.<slug>.completed.mdCONTEXT.md, CONTEXT-MAP.md, docs/adr/*.md, docs/agents/*.md, nested **/docs/adr/*.md, nested **/CONTEXT.md as approved in Hard Rule 3target_path and routing tuple are provided and disagree, fail with blocker and request correction.SCRIBE_FAILED: file not written with the target path and reason. Do not report success.create/update)operation: archive_plan)source_path and target_path are under .plan/, end in .md, and target_path ends with .completed.md.source_path corresponds to target_path (same <type>.<slug> base; only .completed inserted before .md).mv from source_path to target_path (only bash use case; see scribe agent Hard Rules).operation: archive, source_path, target_path, and tool evidence.SCRIBE_FAILED: archive not completed with reason.report_to_parent with path, operation, summary, and whether path was explicit or derived. Include tool call evidence that the file was written (or mv completed for archive_plan).report_to_parent with SCRIBE_FAILED: file not written (or archive failure), target path, and reason (e.g. tool error, path blocked). The parent will retry.SCRIBE_FAILED, stop. The parent will retry.tools
AI-powered code review using CodeRabbit CLI. Use only on explicit user request or when parent passes execution_mode orchestrate_coderabbit_gate. Do not run during orchestrated stage/issue work.
tools
Cross-repo companion to to-prd: after PRD frontmatter is filled, run bin/fanout <slug> from this spec repo to create child GitHub issues (one per ticket or legacy slice).
tools
Issue state machine — transition GitHub issue labels per docs/agents/triage-labels.md. Batch helpers via lib/triage.sh.
documentation
Synthesise a PRD from grill-me / research context, write docs/prd/<slug>.md, publish a GitHub issue with prd + state:ready-for-agent + feature:<slug>. Halt after publish — do not invoke fanout.