- Handbook
- Software delivery
- Templates
- Direct execution — Forge Sparks and Charge candidates
Direct execution — Forge Sparks and Charge candidates
Purpose: Follow-on prompt when Forge request classifier and router — intake prompt classifies work as a direct execution request. The assistant acts as Forge execution planner and proposes Forge Spark(s), Charge…
Guide · Updated · Source
Related: Forge — major processes & flow maps · Epic execution profile (Epic execution profile) · Daily operations (forge/charge.md) · Forge & planning — naming reference (Forge Spark vs Product Spark) · Markdown-canonical workspace policy (optional repo profile) · Documentation structure — proposal
Canonical paths (stock blueprint)
| Concept | Default path (consuming repo root) |
|---|---|
| Charge (core Forge) | forge/charge.md — today's selected Forge Sparks (forge-charge.sh uses this path) |
| Charge (Epic execution profile) | forge/charge.md — Active Epics table (id, OpenSpec change, status, actor) |
| Day journal | forge/journal/YYYY-MM-DD.md |
| Archived Charge | forge/charge-archive/ |
| Forge iteration | Often implicit in planning docs (docs/ROADMAP.md, docs/requirements/WBS.md, forge/releases/*.md); there is no single required ITERATION.md in stock templates |
Team override: If docs/PROJECT.md documents forge/current/CHARGE.md and forge/current/ITERATION.md (or similar), use those paths instead and state that in the change plan. Do not introduce forge/current/ without recording it in docs/PROJECT.md.
How to use
- Run the classifier prompt; confirm direct execution (or equivalent) in output A.
- Copy from “Act as Forge execution planner…” through “F. Risks…” below.
- Paste the request into the fence.
- Prefer
forge/charge.mdunless the repo declares an alias. - Never write project history under
blueprints/.
Prompt body (copy from here)
Act as Forge execution planner for this workspace.
Convert this direct executable request into committed work and decide Charge membership.
Under the Epic execution profile: execute inside the Charged Epic — apply OpenSpec acceptance, decompose runs at L1–L2, do not mint Forge Sparks or …T{n} rows on Charge. L1 trivial skip: obvious one-liners may bypass Epic ceremony (no OpenSpec folder, no Charge row). Core Forge (default): convert to Forge Sparks as below.
Request:
<<<PASTE REQUEST HERE>>>
Workspace rules:
- Markdown-only canonical artifacts (
.md); no CSV / spreadsheet SoT. - Dual profile: Core Forge keeps Forge Spark → Charge. Under the Epic execution profile, Charge = Epics with OpenSpec acceptance — Story/Task/Spark are agent scratch inside the Epic, not Charge items.
- Forge Spark (core only) = smallest delivery unit (~1–4 h), often WBS task id
M{n}E{n}S{n}T{n}; not a Product Spark (release slice). - Charge lists today's committed work —
forge/charge.md: Sparks (core) or Epics (profile); see team alias indocs/PROJECT.mdif documented.
Tasks (core Forge — Forge Sparks):
-
Decide whether the request is one Forge Spark or several (split if multiple PR-sized outcomes, different repos, or non-overlapping acceptance).
-
Identify prerequisites, sequencing, and hidden decomposition (unknowns, discovery work — if the “hidden” work is learning-only, flag as discipline exploration spike per Discipline exploration spike — lifecycle and anchors, not a Forge Spark).
-
Search for existing same/similar Spark-level items in:
docs/requirements/WBS.md- Linked task / Spark Markdown files (e.g.
docs/requirements/milestones/.../tasks/*-task.mdor teamsparks/*.md) - Charge file:
forge/charge.mdor team aliasforge/current/CHARGE.mdif documented - Iteration summary:
forge/current/ITERATION.mdif present, elsedocs/requirements/WBS.md/docs/ROADMAP.md/ relevantforge/releases/*.md -
docs/requirements/TRACEABILITY.md -
For each candidate Forge Spark, choose exactly one canonicalization action A–G from Markdown-canonical workspace policy (optional repo profile).
-
Propose or update Spark records (front matter and/or body) with:
idtitleparent— Ingot / story id (M{n}E{n}S{n}) and, if known, Product Spark / milestone linkrepos/ module affected- Acceptance criteria (testable)
dependencies(Spark ids or external)- Owner discipline / suggested Versona (e.g. SE, UX, DevOps)
estimationplaceholder (TBDor team format)-
canonicalization(action A–G + note) -
Update or propose Markdown updates to:
docs/requirements/WBS.md- Spark / task files under
docs/requirements/... docs/requirements/TRACEABILITY.md- Iteration doc if the repo maintains
forge/current/ITERATION.md; otherwise the WBS / ROADMAP section that names the active Forge iteration -
forge/charge.md(or documented Charge alias) -
Recommend which Sparks belong on the next Charge (today / next session) vs backlog — respect WIP and dependencies.
-
Flag any item too large for one Forge Spark (suggest split into multiple
…T{n}or refinement into an Ingot first).
Tasks (Epic execution profile — inside Charged Epic):
- Confirm target Epic on Charge (
Active Epics) or classify as L1 trivial skip (no Epic row). - Load OpenSpec change — observable SHALLs + scenarios;
tasks.mdis non-binding. - Plan runs inside the Epic (L1–L2); do not mint
…T{n}on Charge or expand WBS Task process for the Epic. - Escalate L4+ (cross-repo L4.2, ADR, security) — stop and ask before proceeding.
- Update traceability at Epic scope; recommend Charge status transitions only for the Epic row.
Execution mode:
- High confidence — apply direct Markdown edits.
- Lower confidence — output exact file paths and full Markdown fragments for review.
Return (structured output):
Profile detected: core Forge · Epic execution profile · L1 trivial skip
A. Work list — Core: Spark table (id, title, phase prefix, status, parent). Profile: Epic id, OpenSpec change, run plan inside Epic (no Charge Spark rows).
B. Sequence and dependencies — ordered graph or numbered list.
C. Charge recommendation — Core: which Spark ids to add/remove on today's Charge. Profile: Epic status/actor updates only.
D. Markdown file changes — path + create/update + one-line purpose.
E. Canonicalization decisions — per candidate: A–G, similarity state, ledger pointer (TRACEABILITY / IMPORT-LEDGER).
F. Risks and hidden decomposition — bullets: unknowns, spikes, oversized work, cross-repo coupling, L4+ escalation.
Maintainer notes
- Scripts (
forge-charge.sh) expectforge/charge.md— if usingforge/current/CHARGE.md, either symlink, wrap the script, or manually mirror; document indocs/PROJECT.md. - After Charge update, daily sync alignment is per Forge — ceremonies & events (prescriptive) (C3).
- If no parent Ingot exists, either link Spark to the nearest story in WBS or trigger Meta-request decomposition — roadmap / WBS / Forge artifacts to create the Ingot row first.