pi-aia-asf 0.5.0 → 0.6.1
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/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.6.1] - 2026-08-28
|
|
11
|
+
|
|
12
|
+
### Removed
|
|
13
|
+
|
|
14
|
+
- **pi-intercom is no longer a dependency** (reversal of the 0.4.0 addition,
|
|
15
|
+
per user decision): removed from `dependencies` in package.json and from the
|
|
16
|
+
runtime dependency check — `/asf` summary is back to the four required
|
|
17
|
+
packages (pi-vigilant, pi-smart-web-search, pi-smart-fetch, pi-aia-browser).
|
|
18
|
+
ASF works fully without it; intercom is documented as an **optional** tool
|
|
19
|
+
(`pi install npm:pi-intercom`) in the README, 06d-delegation.md, and the
|
|
20
|
+
SKILL.md delegation note. Rationale: a hard dependency broke the workspace
|
|
21
|
+
installer's `--skip=pi-intercom` semantics (npm pulled it back in via
|
|
22
|
+
pi-aia-asf), and delegation is a nice-to-have, not a requirement.
|
|
23
|
+
|
|
24
|
+
## [0.6.0] - 2026-08-28
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
- **06c Rule 9 — Documents are code: refactor them when they outgrow
|
|
29
|
+
editability** (new mandatory rule, Ai Applied tenet): when a document starts
|
|
30
|
+
causing writing/editing issues (edit-tool matching failures, truncation,
|
|
31
|
+
multi-topic bloat, every change touching the same big file), it is time to
|
|
32
|
+
refactor it — split by topic, keep the parent as an index/map, keep
|
|
33
|
+
cross-references exact, preserve content (Rule 8 applied to documents),
|
|
34
|
+
verify, and refactor before it hurts rather than after.
|
|
35
|
+
- **Wiring**: 06c "Where this applies" (Phase 6 + Phase 7), 06c anti-patterns
|
|
36
|
+
(letting a document grow until edits break; wall-of-prose SKILL.md), SKILL.md
|
|
37
|
+
Phase 6 note, Phase 7 modularity DoD (documents too), SKILL.md anti-pattern,
|
|
38
|
+
and the reference index (now 9 rules).
|
|
39
|
+
|
|
10
40
|
## [0.5.0] - 2026-08-28
|
|
11
41
|
|
|
12
42
|
### Added
|
package/README.md
CHANGED
|
@@ -41,9 +41,8 @@ You can also force/start a session explicitly:
|
|
|
41
41
|
| **pi-smart-web-search** | `web_search` | `pi install npm:pi-smart-web-search` |
|
|
42
42
|
| **pi-smart-fetch** | `web_fetch`, `batch_web_fetch` | `pi install npm:pi-smart-fetch` |
|
|
43
43
|
| **pi-aia-browser** | `browser_init`, `browser_navigate`, … (Playwright + Chromium, auto-installed) | `pi install npm:pi-aia-browser` |
|
|
44
|
-
| **pi-intercom** | `intercom` — message other live pi sessions directly (delegation, cross-session verification) | `pi install npm:pi-intercom` |
|
|
45
44
|
|
|
46
|
-
`pi-intercom`
|
|
45
|
+
**Optional:** `pi-intercom` (`intercom` — message other live pi sessions directly) is **not** a dependency; ASF works without it. Install it only if you want delegation between sessions: `pi install npm:pi-intercom`.
|
|
47
46
|
|
|
48
47
|
The extension warns at startup (and on `/asf` with no args) when any dependency is missing.
|
|
49
48
|
|
package/index.ts
CHANGED
|
@@ -215,12 +215,6 @@ function checkDependencies(): DependencyCheck[] {
|
|
|
215
215
|
existsSync(join(gitDir, "github.com", "brunoj", "pi-aia-browser")),
|
|
216
216
|
hint: "pi install npm:pi-aia-browser (installs Playwright + Chromium)",
|
|
217
217
|
},
|
|
218
|
-
{
|
|
219
|
-
name: "pi-intercom (intercom: message other pi sessions)",
|
|
220
|
-
package: "pi-intercom",
|
|
221
|
-
present: existsSync(join(npmDir, "pi-intercom")),
|
|
222
|
-
hint: "pi install npm:pi-intercom",
|
|
223
|
-
},
|
|
224
218
|
];
|
|
225
219
|
|
|
226
220
|
return checks;
|
|
@@ -230,7 +224,7 @@ function dependencySummary(): string {
|
|
|
230
224
|
const checks = checkDependencies();
|
|
231
225
|
const missing = checks.filter((c) => !c.present);
|
|
232
226
|
if (missing.length === 0) {
|
|
233
|
-
return "All ASF dependencies present: pi-vigilant, pi-smart-web-search, pi-smart-fetch, pi-aia-browser
|
|
227
|
+
return "All ASF dependencies present: pi-vigilant, pi-smart-web-search, pi-smart-fetch, pi-aia-browser ✓";
|
|
234
228
|
}
|
|
235
229
|
return (
|
|
236
230
|
"⚠️ ASF dependencies missing — install before starting a project:\n" +
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-aia-asf",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Ai Applied Agentic Software Factory — codifies the full software development flow: intake, research, spec capture, adversarial analysis, planning with approval gates, test-first implementation, and release. Requires pi-vigilant, pi-smart-web-search, pi-smart-fetch, pi-aia-browser
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"description": "Ai Applied Agentic Software Factory — codifies the full software development flow: intake, research, spec capture, adversarial analysis, planning with approval gates, test-first implementation, and release. Requires pi-vigilant, pi-smart-web-search, pi-smart-fetch, and pi-aia-browser.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
7
7
|
"software-factory",
|
|
@@ -48,9 +48,6 @@
|
|
|
48
48
|
"@earendil-works/pi-coding-agent": "*",
|
|
49
49
|
"typebox": "*"
|
|
50
50
|
},
|
|
51
|
-
"dependencies": {
|
|
52
|
-
"pi-intercom": "^0.10.1"
|
|
53
|
-
},
|
|
54
51
|
"peerDependenciesMeta": {
|
|
55
52
|
"@earendil-works/pi-ai": {
|
|
56
53
|
"optional": false
|
package/skills/aia-asf/SKILL.md
CHANGED
|
@@ -180,11 +180,15 @@ Keep the plan **implementation-ready**: any competent engineer (or agent) can ex
|
|
|
180
180
|
> SSOT); no hardcoding (config-driven); **testable outside the host then integrated
|
|
181
181
|
> verbatim** (same modules in tests and production); refactor what is too complex to
|
|
182
182
|
> understand; layered with clear boundaries and an architecture writeup; full I/O debug
|
|
183
|
-
> logging with replay; nothing breaks existing functionality.
|
|
183
|
+
> logging with replay; nothing breaks existing functionality. **Documents are code too
|
|
184
|
+
> (Rule 9): when a document outgrows editability (failing edits, truncation, multi-topic
|
|
185
|
+
> bloat), split it by topic and keep the parent as an index — never let it grow until
|
|
186
|
+
> editing breaks.**
|
|
184
187
|
|
|
185
188
|
> **Read `references/06d-delegation.md` before delegating.** Work may be delegated two ways:
|
|
186
189
|
> **intercom** (message another live pi session that owns relevant context — always `list`
|
|
187
|
-
> first, say what you want back, and treat their findings as evidence, not proof
|
|
190
|
+
> first, say what you want back, and treat their findings as evidence, not proof; **optional** —
|
|
191
|
+
> only when the user has installed `pi-intercom`, ASF works without it), and
|
|
188
192
|
> **subagents** (spawn an isolated `pi -p` process when the OUTCOME matters more than the
|
|
189
193
|
> trace — scoped codebase research, independent parallel fixes, fresh-perspective review).
|
|
190
194
|
> Two verified hard limits: **never run parallel subagents against the same file** — tested,
|
|
@@ -212,7 +216,7 @@ Execute the task list milestone by milestone. Discipline rules:
|
|
|
212
216
|
|
|
213
217
|
Run the **Definition of Done checklist** in `references/06b-testing-qa.md` (Rule 10). Every box must hold.
|
|
214
218
|
|
|
215
|
-
Also check the **modularity DoD** from `references/06c-code-quality.md` (Phase 7 section): no duplicated shared logic, no hardcoded config values, every module tested standalone with the same calls it gets in the host, architecture writeup exists, existing functionality still green.
|
|
219
|
+
Also check the **modularity DoD** from `references/06c-code-quality.md` (Phase 7 section): no duplicated shared logic, no hardcoded config values, every module tested standalone with the same calls it gets in the host, architecture writeup exists, existing functionality still green. **Documents too (06c Rule 9)**: no document so large that editing it is fragile — if a doc you worked on started causing edit failures/truncation, it was refactored (split by topic, parent kept as index, cross-references updated).
|
|
216
220
|
|
|
217
221
|
**Large work:** run `/asf verify` — it mechanically validates the **spec-to-code traceability matrix** (M1): every `met` spec must carry `trace` (outcome → codePath → testFile + assertion), testFile must exist, assertion must appear in it. FAIL rows block delivery. **Verify ingested specs from external planning docs too** — the doc's ✅ markers are claims, not evidence.
|
|
218
222
|
|
|
@@ -256,6 +260,7 @@ Also check the **modularity DoD** from `references/06c-code-quality.md` (Phase 7
|
|
|
256
260
|
- ❌ Escalation/fallback logic re-implemented per caller instead of one shared escalation path
|
|
257
261
|
- ❌ Shipping a module that cannot run/test standalone outside the host
|
|
258
262
|
- ❌ Refactoring without the architecture writeup (see `references/06c-code-quality.md`)
|
|
263
|
+
- ❌ Letting a document grow until edits start breaking instead of splitting it (06c Rule 9)
|
|
259
264
|
- ❌ Running parallel subagents that touch the same file — edits are silently lost (see `references/06d-delegation.md`)
|
|
260
265
|
- ❌ Trusting a subagent's exit code or self-report instead of verifying the actual code/test result
|
|
261
266
|
- ❌ Re-deriving context another live session already has instead of asking it over intercom
|
|
@@ -274,6 +279,6 @@ Also check the **modularity DoD** from `references/06c-code-quality.md` (Phase 7
|
|
|
274
279
|
- `references/05-plan.md` — PLAN.md template with examples (incl. spec-to-code traceability matrix)
|
|
275
280
|
- `references/06-implementation.md` — coding discipline details (incl. M4 challenge designs, M5 trace before claiming)
|
|
276
281
|
- `references/06b-testing-qa.md` — **mandatory testing & QA standard** (14 rules + definition of done)
|
|
277
|
-
- `references/06c-code-quality.md` — **mandatory modularity & maintainability standard** (
|
|
282
|
+
- `references/06c-code-quality.md` — **mandatory modularity & maintainability standard** (9 rules, SSOT, testable-standalone, single escalation path, documents-are-code)
|
|
278
283
|
- `references/06d-delegation.md` — **intercom & subagents**: when to message another session, when to spawn isolated workers, the no-mutual-dependencies rule, and why exit codes lie
|
|
279
284
|
- `references/07-release.md` — release workflow (versioning, CHANGELOG, tags, npm, CI/CD)
|
|
@@ -141,6 +141,38 @@ existing functionality. Each rule below carries the lesson.
|
|
|
141
141
|
- This is the SSOT/refactor safety net: refactoring restructures *structure*,
|
|
142
142
|
never *behavior*.
|
|
143
143
|
|
|
144
|
+
## Rule 9 — Documents are code: refactor them when they outgrow editability
|
|
145
|
+
|
|
146
|
+
> *"Whenever documents you work on become so big that they start causing
|
|
147
|
+
> writing / editing issues, it's time to refactor them."* — Ai Applied tenet
|
|
148
|
+
|
|
149
|
+
A document that is too big to edit safely is a **maintainability bug**, not a
|
|
150
|
+
fact of life. The same triggers that say "extract a module" for code say
|
|
151
|
+
"split this document" for docs:
|
|
152
|
+
|
|
153
|
+
- **Edit-tool failures**: `oldText` matching starts failing or needs huge
|
|
154
|
+
context; edits become fragile and overlapping.
|
|
155
|
+
- **Truncation**: the file approaches context limits; reads get cut off;
|
|
156
|
+
you can no longer see the whole document.
|
|
157
|
+
- **Multi-topic bloat**: one file covers several distinct subjects (e.g. a
|
|
158
|
+
SKILL.md that has grown into a wall of prose instead of a map).
|
|
159
|
+
- **Every change touches the same big file**: constant conflict risk, slow
|
|
160
|
+
review, no single place to look.
|
|
161
|
+
|
|
162
|
+
**The refactor pattern (documents):**
|
|
163
|
+
|
|
164
|
+
1. **Split by topic** — one subject per document (like one responsibility per
|
|
165
|
+
module). Move detail into focused references; keep the parent as an
|
|
166
|
+
**index/map** that points to them.
|
|
167
|
+
2. **Keep cross-references exact** — every pointer to the old content is
|
|
168
|
+
updated; nothing dangles.
|
|
169
|
+
3. **Preserve content** — a doc refactor moves text, it does not rewrite or
|
|
170
|
+
drop it (Rule 8 applied to documents).
|
|
171
|
+
4. **Verify** — re-read the split docs, confirm every referenced rule/topic
|
|
172
|
+
still exists and is reachable, and that the frontmatter/format stays valid.
|
|
173
|
+
5. **Refactor before it hurts, not after** — if you notice edit friction
|
|
174
|
+
starting, that is the moment. Do not wait for a broken edit.
|
|
175
|
+
|
|
144
176
|
---
|
|
145
177
|
|
|
146
178
|
## Where this applies in ASF
|
|
@@ -152,11 +184,14 @@ existing functionality. Each rule below carries the lesson.
|
|
|
152
184
|
their boundaries, the one-way dependencies, where shared truth lives, and
|
|
153
185
|
how each module is tested standalone.
|
|
154
186
|
- **Phase 6 (implementation)**: apply Rules 1–8 as you build; extract modules
|
|
155
|
-
when triggers fire; write the architecture doc alongside the code.
|
|
187
|
+
when triggers fire; write the architecture doc alongside the code. Apply
|
|
188
|
+
Rule 9 to the documents you write: SKILL.md, references, PLAN.md, README —
|
|
189
|
+
split them when they outgrow editability.
|
|
156
190
|
- **Phase 7 (verification)**: the DoD checklist includes: no duplicated shared
|
|
157
191
|
logic (Rule 2), no hardcoded config values (Rule 3), every module tested
|
|
158
192
|
standalone with the same calls (Rule 4), architecture doc written (Rule 6),
|
|
159
|
-
existing functionality still green (Rule 8).
|
|
193
|
+
existing functionality still green (Rule 8). Documents: no doc so large that
|
|
194
|
+
editing it is fragile (Rule 9).
|
|
160
195
|
|
|
161
196
|
## Anti-patterns
|
|
162
197
|
|
|
@@ -168,3 +203,6 @@ existing functionality. Each rule below carries the lesson.
|
|
|
168
203
|
- ❌ Refactoring "for fun" without the testability/debugging payoff
|
|
169
204
|
- ❌ Shipping a module that cannot run outside the host
|
|
170
205
|
- ❌ Skipping the architecture writeup ("the code is self-documenting")
|
|
206
|
+
- ❌ Letting a document grow until edits start breaking instead of splitting it
|
|
207
|
+
(Rule 9)
|
|
208
|
+
- ❌ A SKILL.md that is a wall of prose instead of a map to focused references
|
|
@@ -14,6 +14,12 @@ ASF work does not have to happen in one session, in one context window, or one t
|
|
|
14
14
|
|
|
15
15
|
## Part 1 — Intercom: passing messages to other sessions
|
|
16
16
|
|
|
17
|
+
> **Optional capability.** `pi-intercom` is **not** a dependency of ASF — ASF
|
|
18
|
+
> works fully without it. The `intercom` tool is available only when the user
|
|
19
|
+
> has installed it (`pi install npm:pi-intercom`). When it is present, use it
|
|
20
|
+
> as described below; when it is absent, fall back to asking the user or
|
|
21
|
+
> working in one session.
|
|
22
|
+
|
|
17
23
|
Other pi sessions on this machine are often working on directly relevant things: the same monorepo, an adjacent service, the package you depend on. **Use intercom to talk to them directly instead of guessing, duplicating their work, or routing everything through the user.**
|
|
18
24
|
|
|
19
25
|
### When to use intercom
|