agent-doc-discipline
Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and…
Shipyard's internal requirements intake for non-engineer contributors (support/ops) — turn a pasted chat log or verbal problem report into a five-section intent.md through numbered batch questioning with a completion gate, walk it through tracker review with harbor's four
Claude Code
$ npx -y skills add Yeachan-Heo/oh-my-claudecode --skill intent --agent claude-code
Codex
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill intent -a codex -y
Cursor
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill intent -a cursor -y
Gemini CLI
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill intent -a gemini-cli -y
GitHub Copilot
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill intent -a github-copilot -y
OpenCode
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill intent -a opencode -y
Windsurf
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill intent -a windsurf -y
name: intent description: Shipyard's internal requirements intake for non-engineer contributors (support/ops) — turn a pasted chat log or verbal problem report into a five-section intent.md through numbered batch questioning with a completion gate, walk it through tracker review with harbor's four records, and hand the accepted intent to /launch as its mission brief. Produces decisions, not code. argument-hint: "<pasted feedback / chat log | path to existing intent.md | nothing to continue open review>" level: 3 disable-model-invocation: true
Intent is the shipyard's **internal intake**: support/ops staff see product problems first but cannot write engineering specs. The intent skill converts their conversation into a goal-level YAML+markdown artifact that an owner reviews and signs, so engineering receives a fog-free mission. It stands on the verifiability boundary — the agent asks, records, and drafts; humans submit, verify, and sign.
Design provenance: every decision here was pinned by a wayfinder map (7 tickets) and walked end-to-end in a demo repository before implementation.
1. **Opening inventory**: restate the problem in one sentence, then show the five-section inventory (known / missing per section). 2. **Numbered batch questioning**: list every gap as numbered questions in one batch. The contributor answers by number (`1 是; 2 不确定`). Unknown answers are recorded as `待确认` and pushed into open questions — never pressed until guessed. 3. **Re-inventory**: apply the answers; if gaps remain, emit the next numbered batch. One round = one batch. 4. **Stop gate** (all five sections must pass):
5. **Soft limits**: soft prompt at round 6 ("draft with current clarity?"), hard cap at round 12. An early exit is never blocked — thin sections surface as longer open questions, and review is the gate that rejects them. 6. **Draft**: the agent drafts `docs/intents/<slug>/intent.md` (template below) at `status: draft`; the contributor confirms wording before any submission.
--- intent: <slug> title: <one-line title> author: <name (role)> date: <YYYY-MM-DD> status: draft | in-review | accepted | rejected round: <tracker review round> --- ## 问题 <observable phenomena, no solution> ## 目标 one sentence, no qualifiers ## 用户和系统 <who the users are, which systems, real names; unknowns as 待确认> ## 约束 <boundaries, non-goals; cite Rules pillar files when a constraint comes from them> ## 未决问题 - [阻塞|非阻塞] <question> ← agent suggests, product owner finalizes
The test for `阻塞`: **"can the spec still be approved without answering it?"** No → blocking; yes → non-blocking (tracked, may ride into development). The drafting agent suggests grades; the product owner finalizes at spec approval.
Review runs on the repo's tracker — **the tracker is the only record source; intent.md frontmatter mirrors status only**. One record file per Intent, rounds accumulate inside it. Required fields per record: signer, date, verdict, link to intent.md, round, rejection reason (mandatory on reject).
Rejected → revise → resubmit in the same file under the next round number. History stays traceable.
An accepted intent (`status: accepted`) is a valid mission brief. Launch's spec synthesis then follows the **four-step contract**:
1. read `docs/intents/<slug>/intent.md` (must be accepted, latest round) 2. combine with the existing codebase 3. follow the Rules pillar (`CLAUDE.md` + `docs/standards/` + `docs/business/`) 4. list every doubt and rule conflict — graded into the spec's pending-confirmation section
Intent open questions carry into the spec verbatim, keeping their pending status.
New information after acceptance (typically surfaced by the first spec) is an **amendment**: anyone may initiate, the submitter signs, and it always re-enters full review as a new round — no minor-change exemption. An intent change marks the generated spec stale; the spec is regenerated from the new intent and re-approved. No separate amendment record type: rounds carry it.
Conflict conclusions in the spec's pending section follow precedent-based routing: case-local answers stay in the spec; conclusions that will bind later Intents sediment into the Rules pillar (`docs/business/` for business rules, `docs/standards/` for behavior rules); hard-to-reverse technic
For Codex users: Check out oh-my-codex — the same orchestration experience for OpenAI Codex CLI. Liked OmC but found it a bit overkill? Try gajae-code.
Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and…
Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode
Settle types and module shape before cross-boundary code — competing designs explored in parallel, compared on API surface and…
Periodic architecture survey — walks the module graph and reports ranked deepening candidates (shallow modules, hypothetical…
Run N parallel candidates at one brief and synthesize: rubric-first framing, isolated fan-out, a cross-judge on a different…
Shipyard's navigator — chart a foggy effort (destination unclear, questions not yet stateable) into a map of decision tickets on…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration