refactor: Extract _intake shared helper for pre-boundary intake creation#412
Conversation
There was a problem hiding this comment.
Pull request overview
Refactors the pre-boundary intake-creation flow by extracting /fab-new Steps 0–9 into a shared internal helper (_intake) and rewiring /fab-new, /fab-draft, and /fab-proceed to consume it, while updating specs and memory docs to match the new structure.
Changes:
- Added
src/kit/skills/_intake.mdas the single authoritative Create-Intake Procedure (Steps 0–9), parameterized by{questioning-mode}(interactive|promptless-defer). - Rewired
/fab-newand/fab-draftto call_intake(interactive); rewired/fab-proceedto dispatch_intake(promptless-defer)and then chain/fab-switch→/git-branchfor parity. - Updated helper allowlists, SPEC mirrors, and memory docs to reflect the new helper and updated dispatch semantics.
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/kit/skills/fab-proceed.md | Reroutes create-new path to _intake and updates dispatch table + subagent dispatch prose accordingly. |
| src/kit/skills/fab-new.md | Replaces inline Steps 0–9 with _intake(interactive) call-site; keeps activate/branch tail. |
| src/kit/skills/fab-draft.md | Converts from “delta over fab-new” to _intake(interactive) call-site and stops at intake ready. |
| src/kit/skills/_srad.md | Updates the promptless-dispatch carve-out cross-reference to the renamed /fab-proceed section. |
| src/kit/skills/_preamble.md | Adds _intake to the helpers: allowed-values allowlist. |
| src/kit/skills/_intake.md | New shared Create-Intake Procedure (Steps 0–9) with a single {questioning-mode} parameter. |
| fab/changes/260613-3xaj-extract-intake-helper/plan.md | Tracks the change plan/acceptance for the extraction and rewires. |
| fab/changes/260613-3xaj-extract-intake-helper/.status.yaml | Updates pipeline progress/task/acceptance metadata for this change folder. |
| fab/changes/260613-3xaj-extract-intake-helper/.history.jsonl | Appends stage-transition history entries for apply/review/hydrate/ship/review-pr. |
| docs/specs/skills/SPEC-fab-proceed.md | Updates spec to reflect _intake create-new dispatch and chaining changes. |
| docs/specs/skills/SPEC-fab-new.md | Updates spec to describe fab-new as _intake call-site + retained activate/branch tail. |
| docs/specs/skills/SPEC-fab-draft.md | Updates spec to describe fab-draft as _intake call-site that stops at ready. |
| docs/specs/skills/SPEC-_preamble.md | Updates spec to reflect helper allowlist expansion to include _intake. |
| docs/specs/skills/SPEC-_intake.md | New spec mirror for _intake (summary/flow/tools/bookkeeping). |
| docs/specs/skills.md | Updates helper allowlist + mapping table + SPEC enumeration to include _intake. |
| docs/memory/pipeline/planning-skills.md | Reconciles planning-skill memory to reflect _intake extraction and promptless dispatch reroute. |
| docs/memory/pipeline/index.md | Updates pipeline index summary to mention _intake as the pre-boundary helper. |
| docs/memory/pipeline/execution-skills.md | Updates orchestrator docs to reflect _intake dispatch + required /fab-switch→/git-branch chaining. |
| docs/memory/memory-docs/templates.md | Adds/updates documentation about helpers: and the “one shared helper per phase” decomposition (now including _intake). |
| docs/memory/memory-docs/index.md | Updates index entry description to reflect the new helpers decomposition mention. |
| docs/memory/distribution/index.md | Updates distribution index “Last Updated” date entry. |
| docs/memory/_shared/context-loading.md | Updates helper allowlist (7 values) and mapping notes to include _intake and the symmetry table. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| > This file defines the shared **pre-boundary** intake-creation logic used by three skills: | ||
| > `/fab-new`, `/fab-draft`, and `/fab-proceed` (its fab-new subagent dispatch). The calling skill | ||
| > (the **consumer**) binds one parameter before executing this procedure — read it from the |
There was a problem hiding this comment.
Fixed — corrected the stale parenthetical: /fab-proceed now dispatches _intake directly (its create-new subagent dispatch), not /fab-new. (8840808)
| | Tool | Purpose | | ||
| |------|---------| | ||
| | Read | `_generation.md`, templates, backlog, project files | | ||
| | Write | `intake.md` (via the Intake Generation Procedure) | | ||
| | Bash | `fab change new`, `fab resolve --id`/`--folder` (collision pre-check), `fab status set-change-type` (override only), `fab score`, `fab status advance`, `fab status add-issue` | |
There was a problem hiding this comment.
Fixed — added _srad.md (Step 8 — both questioning modes) to the Read row of the Tools used table. (8840808)
…oceed Consolidate the pre-boundary intake creation logic (SRAD scoring, slug validation, intake generation, branch naming) into a new `_intake.md` helper, reducing duplication across the three planning skills and making the shared contract explicit in specs and memory.
fa35852 to
ae2c5ed
Compare
Meta
Pipeline: intake ✓ → apply ✓ → review ✓ → hydrate ✓ → ship → review-pr
Impact:
impl: +196/−112 (net +84)
tests: +0/−0 (net +0)
total: +196/−112 (net +84) ← excludes
fab/,docs/Summary
/fab-newSteps 0–9 form the intake creation procedure, but they were duplicated across the pre-boundary skill family via two inconsistent reuse mechanisms both pointing atfab-new.md—/fab-draftas a prose delta and/fab-proceedas a subagent dispatch. This change extracts Steps 0–9 into a new internal helper_intake.mdparameterized by a single{questioning-mode}knob (interactive|promptless-defer), rewiring all three consumers to thin call-sites. This completes the symmetric helper coverage across pipeline phases:_generation(artifact mechanics),_review(review mechanics),_pipeline(post-intake orchestration), and now_intake(pre-intake orchestration).Changes
src/kit/skills/_intake/SKILL.mdcontaining the Create-Intake Procedure (Steps 0–9), parameterized by{questioning-mode}fab-new.mdrewired to_intake(interactive)+ activate/branch tail;_intakeadded tohelpers:fab-draft.mdrewired to_intake(interactive), stops at ready; momentum warning removed;_intakeadded tohelpers:fab-proceed.mdreroutes the fab-new subagent dispatch to_intake(promptless-defer); state-detection/relevance-assessment retained at call-site_preamble.mdupdated:_intakeadded tohelpers:Allowed-values allowlistdocs/specs/skills/SPEC-_intake.md;SPEC-fab-new.md,SPEC-fab-draft.md,SPEC-fab-proceed.md,SPEC-_preamble.mdupdated (constitution-mandated)pipeline/planning-skills.md,pipeline/execution-skills.md,_shared/context-loading.md,memory-docs/templates.md, plus regenerated indexes