@rasensio/aidlc 1.13.1 → 1.14.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/dist/commands/cost.d.ts.map +1 -1
- package/dist/commands/cost.js +16 -2
- package/dist/commands/cost.js.map +1 -1
- package/dist/commands/transition.js +31 -16
- package/dist/commands/transition.js.map +1 -1
- package/dist/core/types.d.ts +16 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/cost/ledger.d.ts.map +1 -1
- package/dist/cost/ledger.js +9 -0
- package/dist/cost/ledger.js.map +1 -1
- package/dist/cost/provenance.d.ts +80 -0
- package/dist/cost/provenance.d.ts.map +1 -0
- package/dist/cost/provenance.js +192 -0
- package/dist/cost/provenance.js.map +1 -0
- package/dist/cost/providers/claude-code.d.ts.map +1 -1
- package/dist/cost/providers/claude-code.js +24 -1
- package/dist/cost/providers/claude-code.js.map +1 -1
- package/dist/cost/purge.d.ts +65 -0
- package/dist/cost/purge.d.ts.map +1 -0
- package/dist/cost/purge.js +152 -0
- package/dist/cost/purge.js.map +1 -0
- package/dist/cost/recorder.d.ts +36 -1
- package/dist/cost/recorder.d.ts.map +1 -1
- package/dist/cost/recorder.js +112 -6
- package/dist/cost/recorder.js.map +1 -1
- package/dist/cost/rederive.d.ts +80 -0
- package/dist/cost/rederive.d.ts.map +1 -0
- package/dist/cost/rederive.js +257 -0
- package/dist/cost/rederive.js.map +1 -0
- package/dist/cost/report.d.ts +17 -0
- package/dist/cost/report.d.ts.map +1 -1
- package/dist/cost/report.js +49 -1
- package/dist/cost/report.js.map +1 -1
- package/dist/cost/sync.d.ts.map +1 -1
- package/dist/cost/sync.js +166 -40
- package/dist/cost/sync.js.map +1 -1
- package/dist/cost/types.d.ts +45 -1
- package/dist/cost/types.d.ts.map +1 -1
- package/dist/cost/types.js +16 -2
- package/dist/cost/types.js.map +1 -1
- package/dist/doctor/migrations/index.d.ts.map +1 -1
- package/dist/doctor/migrations/index.js +5 -0
- package/dist/doctor/migrations/index.js.map +1 -1
- package/dist/doctor/migrations/instance-completion.d.ts +85 -0
- package/dist/doctor/migrations/instance-completion.d.ts.map +1 -0
- package/dist/doctor/migrations/instance-completion.js +214 -0
- package/dist/doctor/migrations/instance-completion.js.map +1 -0
- package/dist/events/event-bus.d.ts.map +1 -1
- package/dist/events/event-bus.js +12 -1
- package/dist/events/event-bus.js.map +1 -1
- package/package.json +2 -2
package/dist/cost/types.js
CHANGED
|
@@ -6,8 +6,22 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Design: .aidlc/state/cost-tracking/design.md §2
|
|
8
8
|
*/
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Capture-log codes that describe a benign outcome, never a failure.
|
|
11
|
+
*
|
|
12
|
+
* `span-coverage-partial` belongs here: some records legitimately have no
|
|
13
|
+
* measurable span (a chain root, or a background session whose root carries no
|
|
14
|
+
* `promptId`), so partial coverage is an observation to record, not a capture
|
|
15
|
+
* failure to surface. Omitting it made a *successful* pass report an error —
|
|
16
|
+
* intermittently, because `lastCaptureError` suppresses an error only when it is
|
|
17
|
+
* strictly older than the `ok` line, and both are written in the same pass and can
|
|
18
|
+
* share a millisecond. Same millisecond failed, different millisecond passed.
|
|
19
|
+
*/
|
|
20
|
+
export const BENIGN_CAPTURE_CODES = [
|
|
21
|
+
'ok',
|
|
22
|
+
'source-missing',
|
|
23
|
+
'span-coverage-partial',
|
|
24
|
+
];
|
|
11
25
|
/** Session-id format shared by validation and path construction (FR3.9). */
|
|
12
26
|
export const SESSION_ID_RE = /^[A-Za-z0-9_-]{8,64}$/;
|
|
13
27
|
/** Model-id format allowed in ledger entries. */
|
package/dist/cost/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cost/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cost/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqIH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,IAAI;IACJ,gBAAgB;IAChB,uBAAuB;CACxB,CAAC;AAgCF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAErD,iDAAiD;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkB7C,eAAO,MAAM,UAAU,EAAE,SAAS,EA0BjC,CAAC"}
|
|
@@ -20,6 +20,7 @@ import { missingCostShim } from './missing-cost-shim.js';
|
|
|
20
20
|
import { installGuidance } from './install-guidance.js';
|
|
21
21
|
import { staleIdeaSkill } from './stale-idea-skill.js';
|
|
22
22
|
import { roadmapLayout } from './roadmap-layout.js';
|
|
23
|
+
import { instanceCompletion } from './instance-completion.js';
|
|
23
24
|
export const MIGRATIONS = [
|
|
24
25
|
costGitignore,
|
|
25
26
|
knowledgeGitignore,
|
|
@@ -31,6 +32,10 @@ export const MIGRATIONS = [
|
|
|
31
32
|
// instruction on disk that contradicts the layout the next migration creates.
|
|
32
33
|
staleIdeaSkill,
|
|
33
34
|
roadmapLayout,
|
|
35
|
+
// Ordered after roadmap-layout: that migration creates the status directories
|
|
36
|
+
// and can itself place an item in `in-progress/` for an instance that has
|
|
37
|
+
// since completed, which is exactly what this one then moves to `done/`.
|
|
38
|
+
instanceCompletion,
|
|
34
39
|
untrackCostEphemera,
|
|
35
40
|
pruneSessionStash,
|
|
36
41
|
pruneCostLocks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,aAAa;IACb,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,eAAe;IACf,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,cAAc;IACd,aAAa;IACb,8EAA8E;IAC9E,0EAA0E;IAC1E,yEAAyE;IACzE,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,wBAAwB;IACxB,aAAa;IACb,kBAAkB;IAClB,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,eAAe;IACf,eAAe;CAChB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* instance-completion migration (instance-complete-never-fires AC-9..AC-13,
|
|
3
|
+
* AC-16, AC-19, safe tier): stamp `completed_at` on instances that have already
|
|
4
|
+
* reached their completion moment, and move any roadmap item whose
|
|
5
|
+
* `promoted_to` names one of them into `done/`.
|
|
6
|
+
*
|
|
7
|
+
* Exists because `on-instance-complete` was suppressed for the whole time the
|
|
8
|
+
* old fired-once guard read `retrospective.md` — see that instance's
|
|
9
|
+
* `reproduction.md`. Two consequences have to be repaired, and they are the two
|
|
10
|
+
* halves of this migration:
|
|
11
|
+
*
|
|
12
|
+
* - **The guard's new key is unpopulated.** Nothing wrote `completed_at`
|
|
13
|
+
* before this change, so every already-completed instance would look
|
|
14
|
+
* un-fired to the new guard and re-emit on its next `aidlc transition`.
|
|
15
|
+
* Stamping them is a *prerequisite* of the guard change, not a tidy-up
|
|
16
|
+
* (AC-16). The value written is the completion timestamp `completionInfo`
|
|
17
|
+
* derives from phase state, never `now` — a backfill that stamped today
|
|
18
|
+
* would claim work finished when it was repaired.
|
|
19
|
+
* - **Roadmap items were left behind.** `roadmap-done` never ran, so items sit
|
|
20
|
+
* outside `done/` for instances that shipped (AC-9, AC-11).
|
|
21
|
+
*
|
|
22
|
+
* Safe tier, not confirm. `roadmap-layout` is confirm because it rewrites
|
|
23
|
+
* frontmatter it has to *interpret*; this one moves a file whose destination is
|
|
24
|
+
* already stated by data — the item names its instance, and the instance has
|
|
25
|
+
* demonstrably completed. There is no judgement to confirm, and putting it in
|
|
26
|
+
* the confirm tier would make `aidlc doctor` exit 1 until someone answered,
|
|
27
|
+
* which is the kind of soft gate this project's guidance says to avoid.
|
|
28
|
+
*
|
|
29
|
+
* Completion is answered by `completionInfo`, never by a local "is the last
|
|
30
|
+
* phase complete?" test (AC-19): that naive form is wrong for
|
|
31
|
+
* maintenance-terminal templates, which complete on maintenance *entry*.
|
|
32
|
+
* `roadmap-layout` depends on the same helper for the same reason, so the
|
|
33
|
+
* migration and `aidlc transition` cannot disagree.
|
|
34
|
+
*
|
|
35
|
+
* It never emits `on-instance-complete`. Re-delivering a weeks-old event has no
|
|
36
|
+
* consumer left, and would re-ask for retrospectives that already exist. The
|
|
37
|
+
* observable effects are repaired directly instead.
|
|
38
|
+
*
|
|
39
|
+
* Nothing here routes through `aidlc transition`, so the ownership gate cannot
|
|
40
|
+
* block it (AC-13) — the recorded phase owner of a completed instance is
|
|
41
|
+
* typically an agent session that no longer exists.
|
|
42
|
+
*/
|
|
43
|
+
import type { Migration } from '../types.js';
|
|
44
|
+
import type { DoctorContext } from '../types.js';
|
|
45
|
+
import { type RoadmapItem } from '../../roadmap/paths.js';
|
|
46
|
+
/** An instance whose `completed_at` is missing and should be stamped. */
|
|
47
|
+
export interface CompletionStamp {
|
|
48
|
+
instance: string;
|
|
49
|
+
/** Completion timestamp derived from phase state — never `now`. */
|
|
50
|
+
completedAt: string;
|
|
51
|
+
}
|
|
52
|
+
/** A roadmap item stranded outside `done/` by a suppressed event. */
|
|
53
|
+
export interface StrandedItem {
|
|
54
|
+
item: RoadmapItem;
|
|
55
|
+
instance: string;
|
|
56
|
+
}
|
|
57
|
+
export interface CompletionPlan {
|
|
58
|
+
stamps: CompletionStamp[];
|
|
59
|
+
stranded: StrandedItem[];
|
|
60
|
+
/**
|
|
61
|
+
* Roadmap items whose frontmatter will not parse, so `promoted_to` cannot be
|
|
62
|
+
* read and the item is invisible to every roadmap lookup.
|
|
63
|
+
*
|
|
64
|
+
* Reported rather than ignored. Five of this project's 49 items were in this
|
|
65
|
+
* state on 2026-09-01 — every one a title starting with a backtick, which YAML
|
|
66
|
+
* reserves as an indicator character — and because `readItem` returns null
|
|
67
|
+
* silently, they were absent from browse, from `findByPromotedTo`, and from
|
|
68
|
+
* the `roadmap-done` action, with nothing anywhere saying so. That silence is
|
|
69
|
+
* a second, independent cause of the symptom this migration repairs, so a
|
|
70
|
+
* migration that also ignored them would reproduce the failure it exists to
|
|
71
|
+
* fix. Only a human can repair the frontmatter, so these are surfaced, never
|
|
72
|
+
* auto-corrected.
|
|
73
|
+
*/
|
|
74
|
+
unparseable: string[];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Everything the migration would do, computed without writing.
|
|
78
|
+
*
|
|
79
|
+
* The single source of pending-ness, shared verbatim by dry-run and real runs —
|
|
80
|
+
* the rule stated in `../types.ts`. Instances are walked in sorted order so the
|
|
81
|
+
* plan never depends on directory read order.
|
|
82
|
+
*/
|
|
83
|
+
export declare function planInstanceCompletion(ctx: DoctorContext): CompletionPlan;
|
|
84
|
+
export declare const instanceCompletion: Migration;
|
|
85
|
+
//# sourceMappingURL=instance-completion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-completion.d.ts","sourceRoot":"","sources":["../../../src/doctor/migrations/instance-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AAEhC,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;;;;;;;;;OAaG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CAuCzE;AAsED,eAAO,MAAM,kBAAkB,EAAE,SAwDhC,CAAC"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* instance-completion migration (instance-complete-never-fires AC-9..AC-13,
|
|
3
|
+
* AC-16, AC-19, safe tier): stamp `completed_at` on instances that have already
|
|
4
|
+
* reached their completion moment, and move any roadmap item whose
|
|
5
|
+
* `promoted_to` names one of them into `done/`.
|
|
6
|
+
*
|
|
7
|
+
* Exists because `on-instance-complete` was suppressed for the whole time the
|
|
8
|
+
* old fired-once guard read `retrospective.md` — see that instance's
|
|
9
|
+
* `reproduction.md`. Two consequences have to be repaired, and they are the two
|
|
10
|
+
* halves of this migration:
|
|
11
|
+
*
|
|
12
|
+
* - **The guard's new key is unpopulated.** Nothing wrote `completed_at`
|
|
13
|
+
* before this change, so every already-completed instance would look
|
|
14
|
+
* un-fired to the new guard and re-emit on its next `aidlc transition`.
|
|
15
|
+
* Stamping them is a *prerequisite* of the guard change, not a tidy-up
|
|
16
|
+
* (AC-16). The value written is the completion timestamp `completionInfo`
|
|
17
|
+
* derives from phase state, never `now` — a backfill that stamped today
|
|
18
|
+
* would claim work finished when it was repaired.
|
|
19
|
+
* - **Roadmap items were left behind.** `roadmap-done` never ran, so items sit
|
|
20
|
+
* outside `done/` for instances that shipped (AC-9, AC-11).
|
|
21
|
+
*
|
|
22
|
+
* Safe tier, not confirm. `roadmap-layout` is confirm because it rewrites
|
|
23
|
+
* frontmatter it has to *interpret*; this one moves a file whose destination is
|
|
24
|
+
* already stated by data — the item names its instance, and the instance has
|
|
25
|
+
* demonstrably completed. There is no judgement to confirm, and putting it in
|
|
26
|
+
* the confirm tier would make `aidlc doctor` exit 1 until someone answered,
|
|
27
|
+
* which is the kind of soft gate this project's guidance says to avoid.
|
|
28
|
+
*
|
|
29
|
+
* Completion is answered by `completionInfo`, never by a local "is the last
|
|
30
|
+
* phase complete?" test (AC-19): that naive form is wrong for
|
|
31
|
+
* maintenance-terminal templates, which complete on maintenance *entry*.
|
|
32
|
+
* `roadmap-layout` depends on the same helper for the same reason, so the
|
|
33
|
+
* migration and `aidlc transition` cannot disagree.
|
|
34
|
+
*
|
|
35
|
+
* It never emits `on-instance-complete`. Re-delivering a weeks-old event has no
|
|
36
|
+
* consumer left, and would re-ask for retrospectives that already exist. The
|
|
37
|
+
* observable effects are repaired directly instead.
|
|
38
|
+
*
|
|
39
|
+
* Nothing here routes through `aidlc transition`, so the ownership gate cannot
|
|
40
|
+
* block it (AC-13) — the recorded phase owner of a completed instance is
|
|
41
|
+
* typically an agent session that no longer exists.
|
|
42
|
+
*/
|
|
43
|
+
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
44
|
+
import { join } from 'node:path';
|
|
45
|
+
import { parse as parseYaml } from 'yaml';
|
|
46
|
+
import { completionInfo, loadAllTemplates, loadInstance } from '../../metrics/report.js';
|
|
47
|
+
import { saveSnapshot } from '../../state/snapshot-store.js';
|
|
48
|
+
import { ROADMAP_STATUSES, findByPromotedTo, isoDate, moveItem, statusDir, } from '../../roadmap/paths.js';
|
|
49
|
+
/**
|
|
50
|
+
* Everything the migration would do, computed without writing.
|
|
51
|
+
*
|
|
52
|
+
* The single source of pending-ness, shared verbatim by dry-run and real runs —
|
|
53
|
+
* the rule stated in `../types.ts`. Instances are walked in sorted order so the
|
|
54
|
+
* plan never depends on directory read order.
|
|
55
|
+
*/
|
|
56
|
+
export function planInstanceCompletion(ctx) {
|
|
57
|
+
const stateDir = join(ctx.projectRoot, '.aidlc', 'state');
|
|
58
|
+
const unparseable = unparseableItems(ctx.projectRoot);
|
|
59
|
+
if (!existsSync(stateDir))
|
|
60
|
+
return { stamps: [], stranded: [], unparseable };
|
|
61
|
+
const templates = loadAllTemplates(ctx.projectRoot);
|
|
62
|
+
const stamps = [];
|
|
63
|
+
const stranded = [];
|
|
64
|
+
let names;
|
|
65
|
+
try {
|
|
66
|
+
names = readdirSync(stateDir, { withFileTypes: true })
|
|
67
|
+
.filter((e) => e.isDirectory())
|
|
68
|
+
.map((e) => e.name)
|
|
69
|
+
.sort();
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return { stamps: [], stranded: [], unparseable };
|
|
73
|
+
}
|
|
74
|
+
for (const name of names) {
|
|
75
|
+
const inst = loadInstance(ctx.projectRoot, name);
|
|
76
|
+
if (inst === null)
|
|
77
|
+
continue;
|
|
78
|
+
const { completed, completedAt } = completionInfo(inst, templates);
|
|
79
|
+
if (!completed)
|
|
80
|
+
continue;
|
|
81
|
+
// A hand-written `completed_at` is left exactly as it is. It records what
|
|
82
|
+
// somebody observed at the time, and this migration has no better source.
|
|
83
|
+
if (!inst.state.completed_at && completedAt) {
|
|
84
|
+
stamps.push({ instance: name, completedAt });
|
|
85
|
+
}
|
|
86
|
+
const item = findByPromotedTo(ctx.projectRoot, name);
|
|
87
|
+
if (item !== null && item.status !== 'done') {
|
|
88
|
+
stranded.push({ item, instance: name });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return { stamps, stranded, unparseable };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Roadmap items whose frontmatter will not parse, as `<status>/<filename>`.
|
|
95
|
+
*
|
|
96
|
+
* Deliberately re-reads and re-parses rather than calling `readItem`, whose
|
|
97
|
+
* null return cannot distinguish "unparseable" from "absent" — that conflation
|
|
98
|
+
* is the thing being surfaced.
|
|
99
|
+
*/
|
|
100
|
+
function unparseableItems(projectRoot) {
|
|
101
|
+
const out = [];
|
|
102
|
+
for (const status of ROADMAP_STATUSES) {
|
|
103
|
+
const dir = statusDir(projectRoot, status);
|
|
104
|
+
if (!existsSync(dir))
|
|
105
|
+
continue;
|
|
106
|
+
let names;
|
|
107
|
+
try {
|
|
108
|
+
names = readdirSync(dir).sort();
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
for (const name of names) {
|
|
114
|
+
if (!name.endsWith('.md'))
|
|
115
|
+
continue;
|
|
116
|
+
let raw;
|
|
117
|
+
try {
|
|
118
|
+
raw = readFileSync(join(dir, name), 'utf8');
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
out.push(`${status}/${name}`);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
if (!raw.startsWith('---\n')) {
|
|
125
|
+
out.push(`${status}/${name}`);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const close = raw.indexOf('\n---\n', 4);
|
|
129
|
+
if (close === -1) {
|
|
130
|
+
out.push(`${status}/${name}`);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
parseYaml(raw.slice(4, close + 1));
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
out.push(`${status}/${name}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return out;
|
|
142
|
+
}
|
|
143
|
+
/** One-line summary of a plan, shared by `check` and `apply`. */
|
|
144
|
+
function describe(plan, verb) {
|
|
145
|
+
const parts = [];
|
|
146
|
+
if (plan.stamps.length > 0) {
|
|
147
|
+
parts.push(`${verb} completed_at on ${plan.stamps.length} instance(s)`);
|
|
148
|
+
}
|
|
149
|
+
if (plan.stranded.length > 0) {
|
|
150
|
+
const moved = verb === 'would stamp' ? 'would move' : 'moved';
|
|
151
|
+
parts.push(`${moved} ${plan.stranded.length} roadmap item(s) to done/: ${plan.stranded
|
|
152
|
+
.map((s) => s.item.filename)
|
|
153
|
+
.join(', ')}`);
|
|
154
|
+
}
|
|
155
|
+
if (plan.unparseable.length > 0) {
|
|
156
|
+
parts.push(`${plan.unparseable.length} roadmap item(s) have unreadable frontmatter and are invisible to every roadmap lookup — a human must fix them: ${plan.unparseable.join(', ')}`);
|
|
157
|
+
}
|
|
158
|
+
return parts.join('; ');
|
|
159
|
+
}
|
|
160
|
+
export const instanceCompletion = {
|
|
161
|
+
id: 'instance-completion',
|
|
162
|
+
tier: 'safe',
|
|
163
|
+
check(ctx) {
|
|
164
|
+
const plan = planInstanceCompletion(ctx);
|
|
165
|
+
// Ordered after the plan, not before it: a repo can hold roadmap items with
|
|
166
|
+
// no state directory, and reporting "no .aidlc/state" first would swallow
|
|
167
|
+
// the unparseable-item warning — the same silence this migration surfaces.
|
|
168
|
+
const stateDir = join(ctx.projectRoot, '.aidlc', 'state');
|
|
169
|
+
if (!existsSync(stateDir) && plan.unparseable.length === 0) {
|
|
170
|
+
return { applicable: false, reason: 'no .aidlc/state directory' };
|
|
171
|
+
}
|
|
172
|
+
if (plan.stamps.length === 0 && plan.stranded.length === 0) {
|
|
173
|
+
// Unparseable items are reported as NOT APPLICABLE, never as pending —
|
|
174
|
+
// the reasoning `roadmap-layout` records for the same case. `apply` will
|
|
175
|
+
// never fix them, so calling them pending would leave doctor reporting
|
|
176
|
+
// outstanding work that no run can ever clear, which trains people to
|
|
177
|
+
// ignore its output. The detail still prints.
|
|
178
|
+
if (plan.unparseable.length > 0) {
|
|
179
|
+
return { applicable: false, reason: describe(plan, 'would stamp') };
|
|
180
|
+
}
|
|
181
|
+
return { applicable: true, pending: false };
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
applicable: true,
|
|
185
|
+
pending: true,
|
|
186
|
+
description: describe(plan, 'would stamp'),
|
|
187
|
+
};
|
|
188
|
+
},
|
|
189
|
+
apply(ctx) {
|
|
190
|
+
const plan = planInstanceCompletion(ctx);
|
|
191
|
+
const stateDir = join(ctx.projectRoot, '.aidlc', 'state');
|
|
192
|
+
for (const stamp of plan.stamps) {
|
|
193
|
+
// Re-read rather than reusing the planned object: `apply` runs after
|
|
194
|
+
// `check`, and re-loading keeps the write against current state.
|
|
195
|
+
const inst = loadInstance(ctx.projectRoot, stamp.instance);
|
|
196
|
+
if (inst === null || inst.state.completed_at)
|
|
197
|
+
continue;
|
|
198
|
+
inst.state.status = 'complete';
|
|
199
|
+
inst.state.completed_at = stamp.completedAt;
|
|
200
|
+
saveSnapshot(stateDir, stamp.instance, 'instance.yaml', inst.state);
|
|
201
|
+
}
|
|
202
|
+
for (const { item } of plan.stranded) {
|
|
203
|
+
// Guard the move: `check` may have run before another process moved it.
|
|
204
|
+
if (!existsSync(item.file))
|
|
205
|
+
continue;
|
|
206
|
+
moveItem(item, ctx.projectRoot, 'done', isoDate(ctx.now));
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
changed: plan.stamps.length > 0 || plan.stranded.length > 0,
|
|
210
|
+
summary: describe(plan, 'stamped') || 'nothing to repair',
|
|
211
|
+
};
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
//# sourceMappingURL=instance-completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-completion.js","sourceRoot":"","sources":["../../../src/doctor/migrations/instance-completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAM1B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9E;AAkDD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyB3E;AAMD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACxC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EACV,aAAa,EAEb,YAAY,EACZ,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAM1B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM9E;AAkDD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyB3E;AAMD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KACxC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAuH1C;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE3E;AA0ED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,aAAa,GAAG,IAAI,EAC7B,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1B,cAAc,CA6ChB"}
|
package/dist/events/event-bus.js
CHANGED
|
@@ -146,10 +146,21 @@ const builtInHandlers = {
|
|
|
146
146
|
* retro-pending: Mark an instance as awaiting its retrospective
|
|
147
147
|
* (feedback-loop AC-23). Cross-platform Node fs — the shipped
|
|
148
148
|
* on-instance-complete action cannot be a shell script (design F3).
|
|
149
|
+
*
|
|
150
|
+
* No-ops when `retrospective.md` already exists
|
|
151
|
+
* (instance-complete-never-fires AC-7). The documented completion order
|
|
152
|
+
* writes the retrospective *before* firing this event, so without the check
|
|
153
|
+
* every correct completion would ask for a retrospective it already has —
|
|
154
|
+
* and the entry-point skill would offer a menu entry for finished work.
|
|
155
|
+
* Silent rather than announced: nothing is owed, so there is nothing to say.
|
|
149
156
|
*/
|
|
150
157
|
'retro-pending': (event) => {
|
|
151
158
|
try {
|
|
152
|
-
const
|
|
159
|
+
const projectRoot = resolveProjectRoot();
|
|
160
|
+
if (existsSync(join(projectRoot, '.aidlc', 'state', event.instance, 'retrospective.md'))) {
|
|
161
|
+
return { success: true };
|
|
162
|
+
}
|
|
163
|
+
const marker = retroPendingPath(projectRoot, event.instance);
|
|
153
164
|
mkdirSync(dirname(marker), { recursive: true });
|
|
154
165
|
writeFileSync(marker, `${new Date().toISOString()}\n`, 'utf8');
|
|
155
166
|
process.stdout.write(`retro pending for ${event.instance}: run the aidlc-retrospective skill\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/events/event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAS7D,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,QAAgB;IACpE,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AACzE,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAa;IAC1C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,qCAAqC,CAAC;IAC/C,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,sDAAsD,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,qDAAqD,CAAC;IAC/D,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAA4B,CAAC;QACzD,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC,kCAAkC,CAAC;QACxD,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,WAAW,CAAC,qCAAqC,CAAC;QAC3D,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,WAAW,CAAC,uCAAuC,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,WAAW,CAAC,wCAAwC,CAAC;QAC9D,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3C,OAAO,WAAW,CAAC,2CAA2C,CAAC;QACjE,CAAC;QACD,4CAA4C;QAC5C,MAAM,MAAM,GAAG,KAAK,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC;QACjE,MAAM,MAAM,GAAG,KAAK,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC;QACjE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC,0CAA0C,CAAC;QAChE,CAAC;QACD,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC,4CAA4C,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,gCAAiC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,iCAAkC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,IAAqB,CAAC;AAC/B,CAAC;AAiBD,MAAM,eAAe,GAAmC;IACtD;;;;OAIG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAI,MAAM,EAAE,OAAkB,IAAI,yBAAyB,CAAC;QACzE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,QAAQ,CAAC,mBAAmB,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAuB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAChC,MAAM,KAAK,GAAI,MAAM,EAAE,KAAgB,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnF,IAAI,CAAC;YACH,QAAQ,CAAC,4BAA4B,KAAK,iCAAiC,KAAK,CAAC,QAAQ,GAAG,EAAE;gBAC5F,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAyB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;YACzC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC;gBACzF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7D,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,aAAa,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,KAAK,CAAC,QAAQ,uCAAuC,CAC3E,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yBAA0B,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACtF,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,oEAAoE;YACpE,wEAAwE;YACxE,yEAAyE;YACzE,+DAA+D;YAC/D,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;YACD,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,QAAQ,YAAY,CAAC,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAyB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,MAAM,EAAE,IAAc,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;QACxE,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,YAAY,KAAK,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,CAAC;QACxF,IAAI,CAAC;YACH,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,SAAS,CAA6B,CAAC;YAC1E,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAuB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACnF,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,OAAuB;IACnE,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAClC,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,MAAwB,EAAE,KAAmB;IACvE,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;GAEG;AACH,SAAS,YAAY,CAAC,KAAmB;IACvC,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,KAAK;QACxB,cAAc,EAAE,KAAK,CAAC,QAAQ;QAC9B,WAAW,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;QAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ;KAC/B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CACpB,MAAwB,EACxB,KAAmB;IAEnB,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAClC,kBAAkB;QAClB,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;QAC7E,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAClC,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YACpC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE;YAC/C,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC7B,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5F,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC;AAC/E,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,IAAI,CAClB,KAAmB,EACnB,OAA6B,EAC7B,IAA2B;IAE3B,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC;IACrC,MAAM,MAAM,GAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAErD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5E,IAAI,MAAM,EAAE,CAAC;QACX,oDAAoD;QACpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0BAA0B;IAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAChB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM;QACR,CAAC;QAED,qEAAqE;QACrE,0EAA0E;QAC1E,uEAAuE;QACvE,gCAAgC;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yBAAyB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,KAAK,IAAI,QAAQ,IAAI,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rasensio/aidlc",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.1",
|
|
4
4
|
"description": "AI Development Lifecycle Framework — structured lifecycle guidance for AI coding agents across platforms",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"commander": "15.0.0",
|
|
25
25
|
"picomatch": "4.0.5",
|
|
26
26
|
"yaml": "2.9.0",
|
|
27
|
-
"@rasensio/aidlc-content": "1.
|
|
27
|
+
"@rasensio/aidlc-content": "1.14.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "22.15.32",
|