@rasensio/aidlc-content 1.73.1 → 1.75.0
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/docs/knowledge-graph.md +24 -0
- package/docs/roadmap.md +6 -2
- package/docs/state-and-concurrency.md +10 -1
- package/package.json +1 -1
package/docs/knowledge-graph.md
CHANGED
|
@@ -150,3 +150,27 @@ deliberate:
|
|
|
150
150
|
|
|
151
151
|
The same shape guards the coverage cache in `src/traceability/cache.ts`, which is where the pattern
|
|
152
152
|
came from.
|
|
153
|
+
|
|
154
|
+
## When a source file breaks
|
|
155
|
+
|
|
156
|
+
A merge that leaves conflict markers in `modules.yaml`, or a hand edit that makes one document
|
|
157
|
+
unparseable, takes that document out of the index. That part is right: the YAML is the source of
|
|
158
|
+
truth, and keeping the old rows would be serving stale facts again. What was wrong is that nobody
|
|
159
|
+
was told. The parser named the file in a warning that nothing printed, and when no entity was left
|
|
160
|
+
the `# Codebase Knowledge` block simply disappeared from `CLAUDE.md` — a shrinking diff in a
|
|
161
|
+
generated file, the exact shape of thing six instances had already filed as noise.
|
|
162
|
+
|
|
163
|
+
So `aidlc update` and `aidlc init` now print `knowledge graph: <file>: …` for every broken source,
|
|
164
|
+
and say so when the block is left out. Three choices behind that:
|
|
165
|
+
|
|
166
|
+
- **The warning is read from the files on every run**, not only on the run that rebuilt the index.
|
|
167
|
+
Whichever command opens the index first after a merge does the rebuild; if that was `aidlc gate`,
|
|
168
|
+
the warning used to be gone before `aidlc update` ever saw it. That costs one extra parse on those
|
|
169
|
+
two commands — 70–160 ms here — and nothing anywhere else.
|
|
170
|
+
- **A document the index cannot store is skipped and named, not thrown.** A `description:` holding a
|
|
171
|
+
map used to fail the whole rebuild with "cannot be bound to SQLite parameter 4", which names
|
|
172
|
+
neither the file nor the field. The rule is what the index actually refuses, measured against it,
|
|
173
|
+
rather than the stricter rules `aidlc knowledge add` enforces — applying those on read would drop
|
|
174
|
+
facts that index fine today.
|
|
175
|
+
- **`compact` is the exception.** It rewrites the YAML from what it read, so skipping a document there
|
|
176
|
+
would delete it from the source of truth rather than from a cache. It still reads everything.
|
package/docs/roadmap.md
CHANGED
|
@@ -481,8 +481,12 @@ the two differ.
|
|
|
481
481
|
not-asked, yes, and an explicit no are three different answers, and collapsing any two of them
|
|
482
482
|
makes a re-run of `init` delete somebody's configuration.
|
|
483
483
|
- `packages/cli/src/doctor/migrations/roadmap-sync-gh-missing.ts` — the report-tier check. It
|
|
484
|
-
spawns nothing at all: the primary checkout comes from `ctx.
|
|
485
|
-
from `primaryCheckout()`, which shells out to `git rev-parse`.
|
|
484
|
+
spawns nothing at all: the primary checkout comes from `ctx.primaryProjectRoot`, resolved once by
|
|
485
|
+
doctor, not from `primaryCheckout()`, which shells out to `git rev-parse`. It used to derive the
|
|
486
|
+
directory itself from the git common dir, which gave the repository's top — and for a project
|
|
487
|
+
below the top, a config with no `roadmap.sync`, so the check stayed silent. Every roadmap read and
|
|
488
|
+
write resolves the primary checkout's copy of the *project*, not of the repository, for the same
|
|
489
|
+
reason.
|
|
486
490
|
- `packages/content/resources` — a portable version of the item-authoring skill, loadable into any
|
|
487
491
|
agent, so a contributor with no checkout can write an item and commit it to `inbox/`.
|
|
488
492
|
- `packages/cli/src/operational` — the `roadmap-done` completion action. Its history is instructive:
|
|
@@ -65,7 +65,16 @@ inside it before starting the agent session.
|
|
|
65
65
|
## Where the code lives
|
|
66
66
|
|
|
67
67
|
- `packages/cli/src/concurrency` — the claim store, staleness logic, and worktree helpers.
|
|
68
|
-
`claim-store.ts` is the single place a claim is written or read.
|
|
68
|
+
`claim-store.ts` is the single place a claim is written or read. `common-dir.ts`
|
|
69
|
+
`primaryProjectRoot` is the one answer to "the primary checkout's copy of this project", which
|
|
70
|
+
the roadmap, the `aidlc start` concurrency check, autopilot and doctor all use. It is the
|
|
71
|
+
repository's top *joined with the project's path inside it*, because a project can sit below the
|
|
72
|
+
top — a monorepo package. Its predecessor returned the top alone, and for such a project the
|
|
73
|
+
concurrency check told a second session in the same checkout it had "nothing to collide on",
|
|
74
|
+
while the roadmap read a `.aidlc/` that did not exist. It was deleted rather than kept beside the
|
|
75
|
+
new one: a helper answering the wrong question is how one mistake reached five callers.
|
|
76
|
+
`aidlc start --worktree` in a nested project still writes to the new worktree's top; that is
|
|
77
|
+
item-20261009-worktree-start-in-nested-project.
|
|
69
78
|
- `packages/cli/src/state` — instance folders, `phase-<name>.yaml`, and the append-only
|
|
70
79
|
`transitions.log`.
|
|
71
80
|
- `packages/cli/src/commands/claim.ts` — the `claim` and `release` commands, which also write the
|