Forge — artifact and decision model

Purpose: Define how artifacts (inputs/outputs) and decisions attach to Forge’s locked canon—lifecycle model (Forge ↔ SDLC ↔ PDLC bridge, Product development lifecycle (PDLC), Software development lifecycle), meeting…

Companion: Forge — meeting model (operational) specifies meetings (cadence, modes, accountability). This document specifies durable artifacts and decision records and how they connect.

Non-goals: Replace project-specific docs/ layouts, duplicate Software architecture body of knowledge ADR guidance, or introduce a second tracking spine.


Design goals and rules

Goal Implication
Every core meeting and key decision has clear inputs/outputs and ownership Map artifacts to meetings in § Artifact matrix; name an owner per artifact type.
No bureaucracy Prefer minimal types; reuse Ember Log + existing templates; consumer must exist before adding a type.

Rules:

  • Every artifact must have a consumer (human process, gate, or downstream doc).
  • Every artifact must answer why (reasoning / trigger) and for what (intent / outcome)—same bar as Forge — meeting model (operational) per-meeting Why / For what.
  • Keep the set minimal but sufficient.
  • Classify artifacts (one primary class each; some rows span two when bridged):
Class Meaning
Planning Commits scope, sequence, or horizon before execution.
Work execution Describes or tracks units of delivery work.
Evidence Proves quality, readiness, or compliance for a gate or review.
Decision Records a choice, trade-off, or risk acceptance.
Learning / improvement Captures outcomes of inspect-and-adapt; feeds backlog or directives.
Directive Governs how the team works (rules, norms, process)—not product behavior.

Authoring specification (design brief)

The following block is the authoring checklist used to maintain this document. When extending Forge’s artifact set, satisfy these items and update § Decisions kept / § Drift / § Open questions.

Sources of truth: ForgeSDLC — concept map and term-collision register, Forge & planning — naming reference, Forge — meeting model (operational), Forge — ceremonies & events (prescriptive), Forge ↔ SDLC ↔ PDLC bridge, Product creation → delivery — industry, Forge, and PMI-style map.

Task checklist:

  1. Define the minimum artifact set for Forge (see § Recommended artifact set).
  2. For each artifact, specify: purpose; for what; why; owner; Versona contribution; creation trigger; update trigger; required fields; downstream consumers; linked meetings; linked PDLC/SDLC phases—artifact matrix in § Artifact matrix.
  3. Recommend canonical names and flag redundant or collision-prone names (§ Canonical names and collision register).
  4. Provide lightweight Markdown schemas for the highest-value artifacts (§ Markdown schemas).
  5. Include a critical question structure for formal decision documentation plus a decision schema with at minimum: why; for what; options considered; chosen direction; evidence; risks; owner; review date / revisit trigger.

Evaluated artifact names (minimum): Opportunity/problem; discovery/validation; Product Increment / release-slice planning; Spark definition; Decision Record; Review evidence pack; Assay packet; Release/launch; Retro Record; Directive file; ADR (technical decision).


Minimum durable types teams should be able to point to (paths are typical; projects may namespace under docs/ or forge/ per Forge workspace):

# Canonical artifact Primary class Canon pointer
1 Ore (intake item) Planning + work execution ForgeSDLC — concept map and term-collision register, Forge — major processes & flow maps
2 Ingot (refined, plannable) Planning + work execution Same
3 Forge Spark (delivery unit) Work execution Same; Spark definition = Ingot + Spark breakdown at Planning
4 Charge (daily commitment view) Work execution Daily operations
5 Product Spark plan (PoC/MVP/phase/release plan) Planning Product planning, Release plan — {Product Spark name}
6 Ember Log (operational decision memory) Decision Daily operations, ForgeSDLC — concept map and term-collision register Decision Record row
7 ADR (architecture decision record) Decision Software architecture body of knowledge
8 Directive (team working rules) Directive Forge — ceremonies & events (prescriptive) retro → directives
9 Review evidence pack (increment + evidence posture for Review) Evidence Forge — meeting model (operational) § Review
10 Assay packet (release candidate + checklist + rationale) Evidence + decision Assay Gate — {Product Spark name}, Assay Gate
11 Release / launch record (what shipped, where, flags) Evidence (+ PDLC P4 handoff) Release notes + bridge to P4 Launch in PDLC ↔ SDLC bridge
12 Retro → experiment / directive trace Learning + directive Documented retro outputs with owner and evidence per Forge — ceremonies & events (prescriptive)
13 Opportunity / problem (often as Ore + product docs) Planning P1 → Ore; may live in docs/product/ per Product functional documentation blueprint
14 Discovery / validation (experiments, learnings) Evidence + learning PDLC P1–P2; feeds Ore and Product Spark scope

Not a separate Forge artifact type: a second “decision database” if Ember Log + ADR + directives already cover operational, architectural, and team-rule decisions (ForgeSDLC — concept map and term-collision register).


Artifact matrix

Summary of the evaluated names. “Spark definition” is realized as Ingots + phase-tagged Sparks committed in Planning, not a separate document unless the team adds one.

Artifact (evaluated name) Canonical Forge mapping Purpose (short) For what Why Owner (typical) Versona contribution Creation trigger Update trigger Required fields (minimum) Downstream consumers Linked meetings PDLC / SDLC
Opportunity / problem Ore + product context Capture raw problems/ideas Feed refinement and prioritization Avoid silent funnel loss Product hat Product / strategy lenses Intake Re-scope, merge, reject Problem statement, value hypothesis Refinement, roadmap Refinement, ad hoc P1
Discovery / validation PDLC experiments + evidence Learn before scaling commitment Validate assumptions cheaply Reduce wrong build Product + research Discipline Versonas at P2 Hypothesis Learn / kill / pivot Hypothesis, method, result Ore backlog, Product Spark scope Refinement, review P1–P2
Product Increment / release-slice planning Product Spark plan Horizon scope for a slice Align delivery to a releasable chunk Make Assay and roadmap coherent Product / PM PM Versona, roadmap gates New slice / milestone Scope change Goals, out-of-scope, success measures Planning, Assay, GTM Planning P3
Spark definition Ingot + Forge Spark list Executable breakdown Commit iteration work Translate plan to tractable units Owner + Engineering Decomposition drafts Planning Re-plan mid-iteration IDs, AC, phase tags Daily sync, review Planning P3
Decision Record Ember Log entry Operational decision memory Recover “why” later Auditability and fewer re-debates Owner / governance Prompt to log at §5 / activities Decision made Supersede with new log line See Formal decision (Ember Log block) Backlog, Assay, retros Any P3–P6
Review evidence pack Review inputs bundle Show increment + quality posture Iteration accountability Early signal before Assay Whole team Prep drafts End of iteration Each iteration Demo, test summary, known issues Assay readiness, Ember Log Review P3–P4
Assay packet Assay Gate evidence + Assay Gate — {Product Spark name} Release readiness proof Ship vs not yet Protect users and commitments Governance steward Security/compliance checks RC + criteria ready New RC Checklists, gaps, result Launch, ops, stakeholders Assay Gate P4
Release / launch artifact Ship record + comms handoff What went out and how it was activated Market/ops alignment Close loop PDLC P4 Product + engineering Release notes drafts Successful Assay Patch / hotfix Version, scope, flags, notes Customers, support, metrics Assay (prep), launch sync P4
Retro Record Retro notes + directive trace Improve system Sustainable change Encode learning Team; experiment owner Effectiveness review Retro Next retro Themes, experiments, evidence Directives, Ore Retro P5
Directive file sdlc/, .cursor/rules/, team norms Govern how we work Consistent execution Stability without heroics Named owner + approver May encode Versona norms Retro graduation / policy change Policy review date Change rationale, evidence All execution Retro P3–P6
ADR / technical decision docs/adr/ style ADR Architecture significance Long-lived tech coherence Onboard and avoid rework Tech lead Architecture Versona Significant design fork Supersede ADR Context, decision, consequences Implementation, reviews Refinement, design P2–P3

Canonical names and collision register

Use this Avoid / clarify
Ember Log for day-to-day decision memory “Decision Record” as a fourth bucket—map to Ember Log (ForgeSDLC — concept map and term-collision register).
ADR for architecture “Technical Decision Record” only as plain-language alias for ADR—not for Ember Log or directives.
Directive for team rules Charter / working agreement: merge into directives or link explicitly.
Product Spark Release slice, product increment = aliases; Forge Spark = task-level—never interchange.
Assay packet Align with evidence package language in Forge — meeting model (operational); template: Assay Gate — {Product Spark name}.
Review evidence pack Do not merge with Assay packet—Review judges readiness to pursue Assay; Assay is release verdict.
User persona (PDLC) vs Versona (Forge) Forge & planning — naming reference.

Critical questions (formal decision)

Use at ad hoc decision meetings and whenever logging a non-trivial choice in the Ember Log:

  1. What decision is being made (one sentence)?
  2. For what outcome are we optimizing this week / increment?
  3. Why now—what breaks if we defer?
  4. Options considered (including “do nothing”)?
  5. Evidence we relied on—what would falsify this later?
  6. Risks and mitigations—who owns each?
  7. Revisit trigger—date or signal to re-open?

Architecture-only decisions use the ADR template instead; process changes that govern the team belong in directives with retro evidence.


Markdown schemas

1. Formal decision (Ember Log block)

Use inside ember-logs/YYYY-MM-DD.md for decisions that need more than one line:

### Decision — <short title>

- **Why:** <reason / forcing function>
- **For what:** <outcome or constraint this enables>
- **Options considered:** <A | B | C>
- **Chosen direction:** <pick>
- **Evidence:** <links, metrics, session ids>
- **Risks:** <bullet list + owners>
- **Owner:** <name / role>
- **Review date / revisit trigger:** <YYYY-MM-DD or signal>

2. ADR (pointer)

Author full ADRs per Software architecture body of knowledge. Ember Log entries should link to the ADR file rather than duplicating architecture detail.

3. Directive change (retro graduation)

Full templates: Retro Record — (post-retro), Directive Change Proposal — DCP-- (pre-merge), — Project SDLC directive</a>, <a href="sdlc--templates-forge-technical-directive.template.html"><Title> — Technical directive</a>. <strong>Loop and routing:</strong> <a href="sdlc--methodologies-forge-ceremonies-prescriptive.html">Forge — ceremonies & events (prescriptive)</a> § “From retro to directives”.</p> <pre class="forge-code"><code class="language-markdown">## Directive update — <area> - **Why:** <retro theme / incident / evidence> - **For what:** <behavior we want on every iteration> - **Change:** <rule text or pointer to PR> - **Owner:** <who maintains> - **Review date:** <optional> </code></pre> <h3 id="4-review-evidence-pack-lightweight">4. Review evidence pack (lightweight)</h3> <pre class="forge-code"><code class="language-markdown"># Review evidence — <iteration> — <date> - **Increment summary:** <what shipped vs planned> - **Demo / walkthrough:** <link or notes> - **Quality posture:** <tests, defects, known issues> - **Assay readiness:** <ready | needs evidence | scope adjust> - **Ember Log pointers:** <decisions to review> </code></pre> <h3 id="5-assay-packet-extends-template">5. Assay packet (extends template)</h3> <p>Start from <a href="sdlc--templates-forge-assay-gate.template.html">Assay Gate — {Product Spark name}</a>. Ensure <strong>gaps</strong>, <strong>result</strong>, and <strong>rationale</strong> are filled; attach or link <strong>Review evidence pack</strong> when Review and Assay are adjacent.</p> <hr /> <h2 id="decisions-kept">Decisions kept</h2> <ul> <li><strong>Three decision buckets</strong> remain: <strong>Ember Log</strong> (operational), <strong>ADR</strong> (architecture), <strong>Directive</strong> (how we work)—<a href="sdlc--methodologies-forge-concept-map.html">ForgeSDLC — concept map and term-collision register</a>.</li> <li><strong>Meeting model</strong> remains authoritative for <strong>cadence and modes</strong>; artifacts <strong>feed</strong> meetings, not replace them.</li> <li><strong>Assay Gate</strong> stays the named <strong>release evidence</strong> decision; PDLC stage gates remain <strong>product</strong> lifecycle constructs—<a href="sdlc--methodologies-forge-forge-sdlc-pdlc-bridge.html">Forge ↔ SDLC ↔ PDLC bridge</a>.</li> </ul> <hr /> <h2 id="drift">Drift</h2> <ul> <li><strong>Risk:</strong> Retro Records become <strong>verbose minutes</strong>—<strong>mitigation:</strong> cap themes; prioritize <strong>pointers</strong> over prose (<a href="sdlc--methodologies-forge-ceremonies-prescriptive.html">Forge — ceremonies & events (prescriptive)</a> § “From retro to directives”).</li> <li><strong>Risk:</strong> DCP backlog <strong>blocks</strong> trivial fixes—<strong>mitigation:</strong> small clarifications may ship via PR with a <strong>Retro Record</strong> bullet; reserve full DCP for scope/approval/expiry changes.</li> <li><strong>Risk:</strong> Teams invent a “Decision Record” <strong>repository</strong> that duplicates Ember Log—<strong>mitigation:</strong> use the Markdown block in § <a href="#1-formal-decision-ember-log-block">Formal decision (Ember Log block)</a>.</li> <li><strong>Risk:</strong> <strong>Review evidence pack</strong> and <strong>Assay packet</strong> are merged into one slide deck—<strong>mitigation:</strong> keep <strong>readiness</strong> (Review) and <strong>release pass/fail</strong> (Assay) separable in naming and checklist.</li> <li><strong>Risk:</strong> “Spark definition” becomes a duplicate WBS—<strong>mitigation:</strong> treat <strong>Spark = Task</strong>; one hierarchy (<a href="sdlc--methodologies-forge-process-and-flows.html">Forge — major processes & flow maps</a>).</li> </ul> <hr /> <h2 id="inconsistencies">Inconsistencies</h2> <div class="forge-table-wrap mt-2 mb-3"><table class="table table-sm table-striped mb-0"> <thead> <tr> <th>Topic</th> <th>Resolution</th> </tr> </thead> <tbody> <tr> <td>Industry “decision log” vs Forge</td> <td><strong>Ember Log</strong> is the prescriptive home; alias “Decision Record” to Ember Log lines or the formal block above.</td> </tr> <tr> <td>“Retro Record” as a document name</td> <td>Acceptable if it <strong>links</strong> experiments to directive PRs; not a parallel taxonomy if retro notes + traceability suffice (<a href="sdlc--methodologies-forge-concept-map.html">ForgeSDLC — concept map and term-collision register</a>).</td> </tr> <tr> <td>Seven-phase benchmark vs P1–P6</td> <td>Map artifacts in the <strong>artifact matrix</strong> using <strong>P1–P6</strong>; benchmark names in <a href="pdlc--pdlc.html">Product development lifecycle (PDLC)</a>.</td> </tr> </tbody> </table></div> <hr /> <h2 id="open-questions">Open questions</h2> <ul> <li>Whether to publish a <strong>single</strong> combined template for “Review pack + Assay packet” handoff versus keeping two files—<strong>product ops</strong> preference.</li> <li>How strictly to require the <strong>long Ember Log block</strong> vs one-line entries for small decisions—<strong>team scale</strong>; default: block for cross-hat or irreversible choices only.</li> <li>Optional <strong>project-local</strong> <code>sdlc/</code> schema for structured decisions—allowed if it still <strong>rolls up</strong> to Ember Log traceability (<a href="sdlc--methodologies-forge-concept-map.html">ForgeSDLC — concept map and term-collision register</a>).</li> </ul> <hr /> <h2 id="related-links">Related links</h2> <div class="forge-table-wrap mt-2 mb-3"><table class="table table-sm table-striped mb-0"> <thead> <tr> <th>Topic</th> <th>File</th> </tr> </thead> <tbody> <tr> <td>Concept matrix</td> <td><a href="sdlc--methodologies-forge-concept-map.html">ForgeSDLC — concept map and term-collision register</a></td> </tr> <tr> <td>Meetings</td> <td><a href="sdlc--methodologies-forge-meetings-model.html">Forge — meeting model (operational)</a>, <a href="sdlc--methodologies-forge-ceremonies-prescriptive.html">Forge — ceremonies & events (prescriptive)</a></td> </tr> <tr> <td>Daily artifacts</td> <td><a href="sdlc--methodologies-forge-daily.html">Daily operations</a></td> </tr> <tr> <td>Product Spark / planning</td> <td><a href="sdlc--methodologies-forge-planning.html">Product planning</a></td> </tr> <tr> <td>PDLC / SDLC bridge</td> <td><a href="sdlc--methodologies-forge-forge-sdlc-pdlc-bridge.html">Forge ↔ SDLC ↔ PDLC bridge</a></td> </tr> </tbody> </table></div><section class="handbook-related mt-5 pt-4" style="border-top:1px solid var(--forge-border)" aria-labelledby="handbook-related-heading"><h2 id="handbook-related-heading" class="h6 font-display mb-3">Related pages</h2><ul class="mb-0 list-unstyled"><li class="mb-1"><a href="sdlc--methodologies-forge-concept-map.html">ForgeSDLC — concept map and term-collision…</a></li><li class="mb-1"><a href="sdlc--methodologies-forge-forge-sdlc-pdlc-bridge.html">Forge ↔ SDLC ↔ PDLC bridge</a></li><li class="mb-1"><a href="sdlc--methodologies-forge-naming-reference.html">Forge & planning — naming reference</a></li><li class="mb-1"><a href="sdlc--methodologies-forge-product-delivery-forge-ipe.html">Product creation → delivery — industry, Fo…</a></li><li class="mb-1"><a href="sdlc--methodologies-forge.html">Forge — deep-dive package (blueprint)</a></li></ul></section> </div> <div class="col-lg-4 col-xl-3 order-1 order-lg-2"> <nav class="forge-toc" aria-label="On this page"> <p class="toc-title mb-2">On this page</p> <a class="nav-link" href="#design-goals-and-rules">Design goals and rules</a> <a class="nav-link" href="#authoring-specification-design-brief">Authoring specification (design brief)</a> <a class="nav-link" href="#recommended-artifact-set">Recommended artifact set</a> <a class="nav-link" href="#artifact-matrix">Artifact matrix</a> <a class="nav-link" href="#canonical-names-and-collision-register">Canonical names and collision register</a> <a class="nav-link" href="#critical-questions-formal-decision">Critical questions (formal decision)</a> <a class="nav-link" href="#markdown-schemas">Markdown schemas</a> <a class="nav-link" style="padding-left:1.25rem" href="#1-formal-decision-ember-log-block">1. Formal decision (Ember Log block)</a> <a class="nav-link" style="padding-left:1.25rem" href="#2-adr-pointer">2. ADR (pointer)</a> <a class="nav-link" style="padding-left:1.25rem" href="#3-directive-change-retro-graduation">3. Directive change (retro graduation)</a> <a class="nav-link" style="padding-left:1.25rem" href="#4-review-evidence-pack-lightweight">4. Review evidence pack (lightweight)</a> <a class="nav-link" style="padding-left:1.25rem" href="#5-assay-packet-extends-template">5. Assay packet (extends template)</a> <a class="nav-link" href="#decisions-kept">Decisions kept</a> <a class="nav-link" href="#drift">Drift</a> <a class="nav-link" href="#inconsistencies">Inconsistencies</a> <a class="nav-link" href="#open-questions">Open questions</a> <a class="nav-link" href="#related-links">Related links</a> </nav> </div> </div> <nav class="d-flex flex-wrap justify-content-between gap-2 mt-4 pt-3" style="border-top:1px solid var(--forge-border)" aria-label="Chapter navigation"><a href="sdlc--methodologies-fdd.html" class="btn btn-cyan-outline btn-sm">← Feature-Driven Development (FDD)</a><a href="sdlc--methodologies-forge-concept-map.html" class="btn btn-forge-outline btn-sm">ForgeSDLC — concept map and term-collision… →</a></nav> <footer class="mt-5 pt-4 small" style="border-top:1px solid var(--forge-border);color:var(--forge-text-3)"><p class="mb-1">Last updated: <strong>2026-04-10</strong>.</p><p class="mb-0" style="font-size:.75rem;color:var(--forge-text-4)"></p></footer> </div> </main> </div> </div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script> <script src="assets/forge-theme.js"></script> <script src="assets/handbook-portal-nav.js" data-root="."></script> </body> </html>