@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 +1 -1
- package/skills/appraise/SKILL.md +14 -3
- package/skills/flow/SKILL.md +27 -5
- package/skills/forge/SKILL.md +1 -1
- package/skills/quench/SKILL.md +16 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@really-knows-ai/foundry",
|
|
3
|
-
"version": "1.2.
|
|
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",
|
package/skills/appraise/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
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`
|
package/skills/flow/SKILL.md
CHANGED
|
@@ -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
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
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
|
package/skills/forge/SKILL.md
CHANGED
|
@@ -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:
|
package/skills/quench/SKILL.md
CHANGED
|
@@ -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`
|