@really-knows-ai/foundry 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@really-knows-ai/foundry",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "A structured framework for AI-driven artefact creation with deterministic routing, quality gates, and iterative refinement cycles.",
5
5
  "type": "module",
6
6
  "main": ".opencode/plugins/foundry.js",
@@ -54,8 +54,18 @@ Model diversity is configured at two levels: the cycle definition sets a default
54
54
  - Union of all issues — if any one appraiser flags it, it's feedback
55
55
  - De-duplicate: merge overlapping observations into a single feedback item
56
56
  - Preserve which appraiser(s) raised each issue (for traceability)
57
- 9. Write consolidated feedback to WORK.md:
58
- - `- [ ] <description of the issue> #law:<law-id>`
57
+ 9. Write consolidated feedback to WORK.md under the artefact's file heading:
58
+
59
+ Feedback MUST be scoped to the artefact file. Under `## Feedback`, create a `### <file-path>` sub-heading matching the artefact's File column from the artefacts table, then write feedback items beneath it:
60
+
61
+ ```markdown
62
+ ## Feedback
63
+
64
+ ### foundry/output/haiku/pissed-off-spaghetti.md
65
+ - [ ] The imagery lacks originality #law:vivid-imagery
66
+ ```
67
+
68
+ If the `## Feedback` section or the file sub-heading already exists (e.g., quench already wrote validation feedback there), append items under the existing heading. Never write feedback items without a file sub-heading — the sort script cannot parse them.
59
69
  10. If no appraiser found any issues, the artefact clears appraisal
60
70
 
61
71
  ## Dispatch
@@ -120,7 +130,7 @@ If there are no issues, return an empty list.
120
130
 
121
131
  ## Reviewing actioned and wont-fix feedback
122
132
 
123
- On subsequent passes, appraisers also evaluate previously actioned and wont-fix items:
133
+ On subsequent passes, appraisers also evaluate previously actioned and wont-fix items under the artefact's `### <file-path>` heading:
124
134
 
125
135
  - `[x]` actioned items: appraiser checks whether the change actually addresses the issue
126
136
  - If yes: mark `| approved`
@@ -146,3 +156,4 @@ After completing the appraisal consolidation, append an entry to `WORK.history.y
146
156
  - You do not revise the artefact
147
157
  - You do not check deterministic rules — that is the quench skill's job
148
158
  - You do not filter out feedback because only one appraiser raised it — one is enough
159
+ - You do not write feedback items without a file sub-heading under `## Feedback`
@@ -19,11 +19,33 @@ Before running this skill, verify that the `foundry/` directory exists in the pr
19
19
 
20
20
  1. Read the flow definition from `foundry/flows/<flow-id>.md`
21
21
  2. Create a branch off main: `work/<flow-id>-<short-description>`
22
- 3. Create `WORK.md` in the root following the spec in `docs/work-spec.md`:
23
- - Set frontmatter: flow id, first cycle id, first stage
24
- - Write the goal (from flow definition + human context)
25
- - Empty artefacts table with all four columns: `| File | Type | Cycle | Status |`
26
- - Empty feedback section
22
+ 3. Create `WORK.md` in the project root with this structure:
23
+
24
+ ```markdown
25
+ ---
26
+ flow: <flow-id>
27
+ cycle: <first-cycle-id>
28
+ stages: [<determined by cycle skill>]
29
+ max-iterations: 3
30
+ ---
31
+
32
+ # Goal
33
+
34
+ <goal from flow definition + human context>
35
+
36
+ ## Artefacts
37
+
38
+ | File | Type | Cycle | Status |
39
+ |------|------|-------|--------|
40
+
41
+ ## Feedback
42
+ ```
43
+
44
+ - `flow` — set once, never changes
45
+ - `cycle` — current cycle id, updated when each cycle starts
46
+ - `stages` — the ordered route for the cycle, set by the cycle skill. Each entry uses `base:alias` format (e.g. `forge:write-haiku`, `quench:check-syllables`). Determined from the artefact type: if `validation.md` exists, include `quench`; always include `forge` and `appraise`. `hitl` stages are optional.
47
+ - `max-iterations` — how many forge passes before the cycle is blocked (default: 3, can be overridden in cycle definition)
48
+ - Feedback is grouped under `### <file-path>` sub-headings matching the artefact's File column. See the quench and appraise skills for the format.
27
49
  4. Execute each foundry cycle in order by reading its definition from `foundry/cycles/<cycle-id>.md`
28
50
  5. Update the frontmatter cursor as each foundry cycle starts (set `cycle` to the new cycle id)
29
51
  6. When all foundry cycles are done, delete WORK.md — the artefacts and git history are the record
@@ -30,7 +30,7 @@ Before running this skill, verify that the `foundry/` directory exists in the pr
30
30
 
31
31
  ### Revision (feedback exists in WORK.md)
32
32
 
33
- 1. Read `WORK.md` — find unresolved feedback items for the artefact
33
+ 1. Read `WORK.md` — find unresolved feedback items for the artefact. Feedback is scoped by file: look under `## Feedback` for the `### <file-path>` sub-heading that matches the artefact's File column in the artefacts table. Only items under that heading belong to this artefact.
34
34
  2. Read the artefact
35
35
  3. If the foundry cycle has inputs, read the input artefacts (read-only context)
36
36
  4. For each unresolved feedback item, either:
@@ -26,10 +26,23 @@ This skill only runs if `foundry/artefacts/<type>/validation.md` exists. If ther
26
26
  4. For each validation entry:
27
27
  - Substitute `{file}` in the command with the artefact path
28
28
  - Run the command
29
- - If exit code is non-zero: add feedback to WORK.md:
30
- - `- [ ] <failure description from validation.md> #validation`
29
+ - If exit code is non-zero: add feedback to WORK.md under the artefact's file heading
31
30
  5. If all commands exit zero, add no new feedback
32
31
 
32
+ ## Feedback format
33
+
34
+ Feedback MUST be scoped to the artefact file it applies to. Under `## Feedback`, create a `### <file-path>` sub-heading matching the artefact's File column from the artefacts table, then write feedback items beneath it:
35
+
36
+ ```markdown
37
+ ## Feedback
38
+
39
+ ### foundry/output/haiku/pissed-off-spaghetti.md
40
+ - [ ] The haiku does not have exactly 3 lines. #validation
41
+ - [ ] One or more lines do not match the 5-7-5 syllable pattern. #validation
42
+ ```
43
+
44
+ If the `## Feedback` section or the file sub-heading already exists, append items under the existing heading. Never write feedback items without a file sub-heading — the sort script cannot parse them.
45
+
33
46
  ## Reviewing actioned feedback
34
47
 
35
48
  On subsequent passes, the quench skill re-runs the relevant command for previously actioned items:
@@ -59,3 +72,4 @@ After completing validation (whether issues were found or not), append an entry
59
72
  - You do not evaluate laws — that is the appraise skill's job
60
73
  - You do not invent validation rules — you only run commands from the validation file
61
74
  - You do not duplicate feedback that already exists in WORK.md
75
+ - You do not write feedback items without a file sub-heading under `## Feedback`