agent-doc-discipline
Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and carrying a why, steps before…
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
$ npx -y skills add Yeachan-Heo/oh-my-claudecode --skill intent --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/intentContext preview
The summary Claude sees to decide when to auto-load this skill.
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
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.
Repo: Yeachan-Heo/oh-my-claudecode
Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and carrying a why, steps before…
Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode
Periodic architecture survey — walks the module graph and reports ranked deepening candidates (shallow modules, hypothetical seams, logic behind the wrong…
Shipyard's navigator — chart a foggy effort (destination unclear, questions not yet stateable) into a map of decision tickets on the repo's issue tracker, then…
Process-first advisor routing for Claude, Codex, Gemini, Antigravity, Grok, or Cursor via `omc ask`, with artifact capture and no raw CLI assembly