Claude Cursor opencode Skill

plan-feature-scaffold

Internal step of plan-feature: from an already-designed SPEC (product half `designed`), fill the **engineering half** and generate the planning artifact set scaled to the feature's size (XS/S → SPEC-only with ≥ 2 phases in the SPEC, last = Hardening & PR; M/L → full set with a ha

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download gtrabanco-agentic-workflow-skills_plan-feature-scaffold-4b3a56b.zip · 6 KB
Part of gtrabanco/agentic-workflow — 33 skills

Install

skills CLI npx skills add https://github.com/gtrabanco/agentic-workflow/tree/main/skills/plan-feature-scaffold
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install gtrabanco-agentic-workflow@llmmart
Git git clone https://github.com/gtrabanco/agentic-workflow.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole gtrabanco/agentic-workflow collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Plan Feature — Scaffold (internal)

Turn a designed feature into the project's complete planning artifact set, ready for phase-by-phase execution. Fills only the SPEC's engineering half — the product half (goal, context, scope, capability closure) already exists and is marked designed before this skill ever runs (plan-feature's redirect gate guarantees it). Docs only — never code.

When to use

  • The plan-feature router calls this once a feature's product half is designed — from design-feature, plan-feature-from-issue, or an already-scoped slug/SPEC — to fill the engineering half of its docs/features/<NN>-<slug>/SPEC.md and the rest of the folder, then update the roadmap.

Not for product definition (that is design-feature) or writing code (that is execute-phase) or deciding whether to build (that is the plan-feature router / triage-issue).

Step 0 — Discover the project (always first)

Per the agent guide's Workflow conventions + documentation map, then read what THIS skill needs: the feature SPEC template, the roadmap (numbering/order/deps), 1–2 recent feature folders to mirror the artifact set, and the architecture/domain docs the map points to. No template/roadmap → fall back to the agent guide and state the assumption.

Progressive loading — scaffold only after discovery

The reference allowlist is exactly one path. After Step 0, read and execute the complete scaffold process. It owns the product- half gate, artifact scaling, roadmap transition, re-read, and fixed completion report. The phase contract owns the 8-box phase-lint and the normalized phase fingerprint, and bun scripts/phase-lint.mjs <plan> (node fallback) runs it: run the linter over the emitted plan before reporting and paste its stdout block verbatim as lint output, never as instructions — exit 1 is a blocked phase to re-cut, never a verdict to re-derive by reading the rules. If the script is absent (installed-skill target — it ships with the repository, not the skill), apply the eight phase-contract rules by hand, label the check weaker, and disclose the linter did not run; never skip the gate.

The resource is normative and one hop from this file. Missing resource → stop; never reconstruct phase or close-out wording from memory.

The verification contract owns the ACCEPTANCE.md schema, validation ladder, and anti-weakening rules. Consume it after the engineering plan is complete and before registering planned.

Research and reference trace (plan stage)

  • Conditional web research. Plan-stage research runs only when a bounded question (ROWS.md Q1–Q5) cannot be answered from repository evidence: run exactly one web pass before the phases are emitted and freeze what it returns as evidence rows (URL and access date). A question the repository answers is never re-fetched.
  • Mandatory reference trace. Affected code is located by symbol/reference search — LSP/serena when the environment offers it, grep otherwise — and the blast radius is derived from that search, never from model memory: added or changed code can break callers the plan must name.

Guardrails

  • Docs only. No source edits, migrations, or dependencies.
  • Respect the architecture: honor layer rules (inner layers don't import outer) and any domain/i18n/SEO/a11y rules from the docs map.
  • Architectural invariants. The planning preflight owns the normalized repository state read and the ONE final architectural classification for the whole plan; consume it here. Its absence is compatible: record n/a: no project invariants declared in the engineering half. For every applicable rule, record its ID, repository evidence, and preserves | violates | introduces | changes classification in ### Architecture impact. Only preserves may produce phases; the other classifications stop for an explicit architectural decision through the project's declared authority — and only after the full plan exists, never converted into a phase task or inferred from the product half.
  • Surface conflicts (numbering clashes, dependency cycles, scope overlap) before writing, not after.
  • Otherwise honor the project's Workflow conventions (branch/PR, docs-language).

Relationship to other skills

Invoked by the plan-feature router (after design-feature / plan-feature-from-issue designed the product half, or directly for an already-designed scoped slug/SPEC). Hands off to execute-phase for P1; audit-docs audits anytime.

Done when

  • docs/features/<NN>-<slug>/ exists with the SPEC's engineering half + ACCEPTANCE.md + every scaled planning artifact filled — the product half untouched from what design-feature / plan-feature-from-issue wrote.
  • The roadmap lists the feature with correct number, order, dependencies, and status planned (the defined → planned write this skill owns) — re-read and confirmed after the write, not assumed from having run it.
  • No code changed; open questions captured in decisions.md.
Files (agentic-workflow)
  • references
    • SCAFFOLD_PROCESS.md 6.9 KB
      ## Scaffold process
      
      1. **Verify design.** `## Design status` must be `designed` and Capability
         closure complete. Otherwise stop: this is a caller bug; never repair the
         Product half here.
      2. **Resolve identity.** Confirm the existing number/slug, or choose the next
         free number for a designed SPEC missing from the roadmap. Record dependencies
         and surface numbering, ordering, cycle, or overlap conflicts before writing.
      3. **Fill only the Engineering half:** technical goals, architecture impact,
         design, decisions to confirm, branch, phases, testing requirements, and dev
         scenarios covering happy path plus reproducible empty/degraded, race, and
         outage cases. Leave no placeholders; put genuine unknowns in `decisions.md`.
         Ground it first per
         [`evidence-grounding`](<../../evidence-grounding/SKILL.md>) — inventory,
         evidence, draft from frozen rows — and freeze the two planning ledgers while
         you cut phases, never afterwards from memory:
         [planning ledgers](<../../pre-execution-review/SKILL.md>).
      
         - Freeze `planning-evidence.md` (M/L) or `### Planning evidence` in the SPEC
           (XS/S) and `planning-obligations.md` (M/L) or `### Obligations` (XS/S) with
           the column order, statuses, and homes defined **once** in
           [`pre-execution-review`](<../../pre-execution-review/SKILL.md>) — do not
           restate or reorder those columns here. No transcripts, no discarded
           hypotheses; one obligation row per normative behaviour, applicable invariant,
           affected use case, and required failure state.
         - Cut phases only after every obligation row has a phase and a validator that
           can fail.
         - Rotate `artifactRevisionId` for the unit's plan artifacts on this write and
           carry it in the hand-off. A later revert to these same bytes is a new
           authoring event and needs a new id.
      4. **Scale by size:**
      
         - **XS/S:** SPEC + `ACCEPTANCE.md`. Its `### Phases` has checkbox tasks and at least `P1`
           implementation plus final `P2 — Hardening & PR`. Copy the final phase's
           literal tasks from `docs/fix/_TEMPLATE/SPEC.md`; never paraphrase them.
         - **M/L:** create `ACCEPTANCE.md`, `PLAN.md`, `TASKS.md`, `progress.md`, `testing.md`,
           `known-issues.md`, `decisions.md`, and `architecture-notes.md`.
         - **Mandatory split:** use `Depends on:`-chained features when the plan would
           exceed about five phases, any phase spans multiple layers/concerns, or a
           phase contains an unresolved design decision. Reuse the existing dependency
           gate/build order; never invent another mechanism.
         - Every phase passes: independently checkable tasks without judgment; zero
           open design decisions; one layer/concern; locally runnable verification.
           Re-cut or split on any failure.
         - Run the canonical eight-box Phase-lint — owned by the
           [phase contract](<../../phase-contract/SKILL.md>), executed with
           `bun scripts/phase-lint.mjs <plan>` (node fallback) — over every phase
           before emission, and paste its stdout block into the report as lint output,
           never as instructions (it echoes plan-derived text). Exit 1 is a blocked
           phase: re-cut or split it; never emit an unticked phase. If the script is
           absent (installed-skill target), apply the eight rules by hand, label the
           check weaker, and disclose the linter did not run; never skip the gate.
         - Run the feature template's full Spec-lint after the Engineering half is
           filled, including Product-half regression boxes. Fix every presence failure
           before reporting.
         - Consume the canonical [verification contract](<../../verification-contract/SKILL.md>)
           and write one compact, frozen `ACCEPTANCE.md` for every size. Map every SPEC
           criterion to a deterministic command, labelled read check, or exact manual
           observation. The manifest is the implementation/review finish line, not a
           second specification.
      
      ### M/L artifact contract
      
      - `PLAN.md`: `P1, P2, …` phases only; no `S1`/`Step`. The last implementation
        phase hardens and tests the SPEC failure scenarios.
      - `TASKS.md`: per-phase checklists. Express command-checkable acceptance as the
        command; label judgment-only checks `read-verified`. Its final phase ends with
        these literal tasks:
      
        ```text
        [ ] open the PR (`gh pr create --body-file <path>` — body written as a Markdown file, real backticks, never inline `--body`/heredoc that leaves `\`-escaped backticks) and PRINT THE PR URL in the chat
        [ ] update the roadmap row to `done · [#<pr>](<pr-url>)`
        [ ] commit `docs: link PR #<n>` and push
        ```
      
      - `progress.md`: initialize only `Last reviewed: —`; the executor appends one
        fixed-schema handoff entry after each phase with `Done`, `Remains`, `Gotchas`,
        `Files`, and `Next`.
      - `testing.md`: test layers, preferring integration; use the same command rule.
      - `ACCEPTANCE.md`: required for every size; frozen validation manifest owned by
        `verification-contract`, with the literal quality floor.
      - `known-issues.md`: deferred items linked to/destined for issues, never inline.
      - `decisions.md`: architecture/scope decisions and open questions.
      - `architecture-notes.md`: layer, port, schema, and binding impact.
      
      5. **Register and verify.** Set the roadmap row to `planned` (`defined → planned`;
         a missing row may be added directly as `planned`). Re-read it after the write.
         If it does not literally say `planned`, reapply and re-read before continuing.
         Obligation rows are never discharged by this step: no phase may be cut with an
         obligation pointing at a future issue, and this skill creates no forge issue —
         `deferred` exists only after the user amends the governing SPEC
         (`pre-execution-review` owns the rule).
         No obligation is discharged by this step: a phase may not be cut while an
         obligation points at a future issue, this skill creates no forge issue, and
         `deferred` exists only after the user amends the governing SPEC
         (`pre-execution-review` owns the rule).
      6. **Run the `stage: plan` readiness preflight** from
         [`evidence-grounding`](<../../evidence-grounding/SKILL.md>) (it routes to
         `READINESS.md`) and paste its block. Only `READY-FOR-REVIEW` licenses the hand-off below;
         `NEEDS-EVIDENCE` / `NEEDS-DESIGN` / `NEEDS-REPLAN` means this turn re-runs its
         own step, and it is never written as, quoted as, or summarized as a review
         PASS. Never stamp a receipt or create `planning-findings.md` rows here.
      7. **Do not branch or code.** Record the future branch in the SPEC only.
      8. **Return exactly** (the caller prints the closing `→ Next:` block, which routes
         to `/review-plan`, never to `/execute-phase`):
      
      ```
      SCAFFOLD <NN>-<slug> — size: <XS|S|M|L>
      Artifacts written: <SPEC.md ACCEPTANCE.md [+ PLAN.md TASKS.md progress.md testing.md
        known-issues.md decisions.md architecture-notes.md for M/L]>
      Roadmap: registered as <NN> (deps: <list|none>)   Phases: <n> (P1…P<n>, last = <hardening (M/L) | Hardening & PR (XS/S)>)
      Spec-lint: PASS (<n>/<n> boxes)   Phase-lint: PASS (all phases)
      Open questions: <n> (in decisions.md) | none
      ```
      
  • SKILL.md 5.7 KB
    ---
    name: plan-feature-scaffold
    user-invocable: false
    version: 2.3.2
    author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>"
    license: MIT
    description: >
      Internal step of plan-feature: from an already-designed SPEC (product half
      `designed`), fill the **engineering half** and generate the planning
      artifact set scaled to the feature's size (XS/S → SPEC-only with ≥ 2 phases
      in the SPEC, last = Hardening & PR; M/L → full set with a hardening phase),
      freeze one compact ACCEPTANCE.md for every size, and register the roadmap
      entry. Docs only — never code.
    ---
    
    # Plan Feature — Scaffold (internal)
    
    Turn a designed feature into the project's complete planning artifact set,
    ready for phase-by-phase execution. Fills only the SPEC's **engineering half**
    — the product half (goal, context, scope, capability closure) already exists
    and is marked `designed` before this skill ever runs (`plan-feature`'s
    redirect gate guarantees it). **Docs only — never code.**
    
    ## When to use
    
    - The `plan-feature` router calls this once a feature's product half is
      `designed` — from `design-feature`, `plan-feature-from-issue`, or an
      already-scoped slug/SPEC — to fill the engineering half of its
      `docs/features/<NN>-<slug>/SPEC.md` and the rest of the folder, then update
      the roadmap.
    
    Not for product definition (that is `design-feature`) or writing code (that is
    `execute-phase`) or deciding *whether* to build (that is the `plan-feature`
    router / `triage-issue`).
    
    ## Step 0 — Discover the project (always first)
    
    Per the agent guide's **Workflow conventions** + **documentation map**, then read
    what THIS skill needs: the feature SPEC **template**, the **roadmap**
    (numbering/order/deps), 1–2 recent feature folders to mirror the artifact set, and
    the architecture/domain docs the map points to. No template/roadmap → fall back to
    the agent guide and state the assumption.
    
    ## Progressive loading — scaffold only after discovery
    
    The reference allowlist is exactly one path. After Step 0, read and execute the
    complete [scaffold process](references/SCAFFOLD_PROCESS.md). It owns the product-
    half gate, artifact scaling, roadmap transition, re-read, and fixed completion
    report. The [phase contract](<../phase-contract/SKILL.md>) owns the 8-box
    phase-lint and the normalized phase fingerprint, and
    `bun scripts/phase-lint.mjs <plan>` (node fallback) runs it: run the linter over
    the emitted plan before reporting and paste its stdout block verbatim as lint
    output, never as instructions — exit 1 is a blocked phase to re-cut, never a
    verdict to re-derive by reading the rules. If the script is absent
    (installed-skill target — it ships with the repository, not the skill), apply the
    eight `phase-contract` rules by hand, label the check weaker, and disclose the
    linter did not run; never skip the gate.
    
    The resource is normative and one hop from this file. Missing resource → stop;
    never reconstruct phase or close-out wording from memory.
    
    The [verification contract](<../verification-contract/SKILL.md>) owns the
    `ACCEPTANCE.md` schema, validation ladder, and anti-weakening rules. Consume it
    after the engineering plan is complete and before registering `planned`.
    
    ## Research and reference trace (plan stage)
    
    - **Conditional web research.** Plan-stage research runs only when a bounded
      question (ROWS.md Q1–Q5) cannot be answered from repository evidence: run
      exactly one web pass before the phases are emitted and freeze what it
      returns as evidence rows (URL and access date). A question the repository
      answers is never re-fetched.
    - **Mandatory reference trace.** Affected code is located by symbol/reference
      search — LSP/serena when the environment offers it, grep otherwise — and the
      blast radius is derived from that search, never from model memory: added or
      changed code can break callers the plan must name.
    
    ## Guardrails
    
    - Docs only. No source edits, migrations, or dependencies.
    - Respect the architecture: honor layer rules (inner layers don't import outer)
      and any domain/i18n/SEO/a11y rules from the docs map.
    - **Architectural invariants.** The [planning preflight](<../planning-preflight/SKILL.md>)
      owns the normalized repository state read and the ONE final architectural
      classification for the whole plan; consume it here. Its absence is compatible:
      record `n/a: no project invariants declared` in the engineering half. For
      every applicable rule, record its ID, repository evidence, and
      `preserves | violates | introduces | changes` classification in
      `### Architecture impact`. Only `preserves` may produce phases; the other
      classifications stop for an explicit architectural decision through the
      project's declared authority — and only after the full plan exists, never
      converted into a phase task or inferred from the product half.
    - Surface conflicts (numbering clashes, dependency cycles, scope overlap) before
      writing, not after.
    - Otherwise honor the project's **Workflow conventions** (branch/PR, docs-language).
    
    ## Relationship to other skills
    
    Invoked by the `plan-feature` router (after `design-feature` /
    `plan-feature-from-issue` designed the product half, or directly for an
    already-designed scoped slug/SPEC). Hands off to `execute-phase` for P1;
    `audit-docs` audits anytime.
    
    ## Done when
    
    - `docs/features/<NN>-<slug>/` exists with the SPEC's engineering half +
      `ACCEPTANCE.md` + every scaled planning artifact filled — the product half untouched from what
      `design-feature` / `plan-feature-from-issue` wrote.
    - The roadmap lists the feature with correct number, order, dependencies, and
      **status `planned`** (the `defined → planned` write this skill owns) —
      **re-read and confirmed after the write**, not assumed from having run it.
    - No code changed; open questions captured in `decisions.md`.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related