@rasensio/aidlc-content 1.10.8 → 1.11.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.
@@ -0,0 +1,20 @@
1
+ import type { GlossaryTerm } from './types.js';
2
+ /**
3
+ * Load every canonical vocabulary definition.
4
+ *
5
+ * Read from the content package, never from a project — see `GlossaryTerm` and
6
+ * plain-language-vocabulary DD-2 for why the glossary is deliberately not
7
+ * installable. Both consumers call this: the CLI resolves `{{glossary:<term>}}`
8
+ * placeholders in skill bodies with it, and the website renders `/docs/glossary`
9
+ * from it at build. One source, two consumers, no copy.
10
+ */
11
+ export declare function loadGlossary(): GlossaryTerm[];
12
+ /**
13
+ * Look one term up by its canonical key.
14
+ *
15
+ * Matching is case-insensitive on the key so that a placeholder written
16
+ * `{{glossary:Instance}}` resolves; the returned definition is always the
17
+ * canonical text.
18
+ */
19
+ export declare function getGlossaryTerm(term: string): GlossaryTerm | undefined;
20
+ //# sourceMappingURL=glossary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glossary.d.ts","sourceRoot":"","sources":["../src/glossary.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAS/C;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,YAAY,EAAE,CAI7C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAGtE"}
@@ -0,0 +1,32 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import { resolve, dirname } from 'node:path';
3
+ import { readFileSync } from 'node:fs';
4
+ import { parse as parseYaml } from 'yaml';
5
+ const CONTENT_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..');
6
+ const GLOSSARY_PATH = resolve(CONTENT_ROOT, 'glossary.yaml');
7
+ /**
8
+ * Load every canonical vocabulary definition.
9
+ *
10
+ * Read from the content package, never from a project — see `GlossaryTerm` and
11
+ * plain-language-vocabulary DD-2 for why the glossary is deliberately not
12
+ * installable. Both consumers call this: the CLI resolves `{{glossary:<term>}}`
13
+ * placeholders in skill bodies with it, and the website renders `/docs/glossary`
14
+ * from it at build. One source, two consumers, no copy.
15
+ */
16
+ export function loadGlossary() {
17
+ const raw = readFileSync(GLOSSARY_PATH, 'utf8');
18
+ const parsed = parseYaml(raw);
19
+ return parsed?.terms ?? [];
20
+ }
21
+ /**
22
+ * Look one term up by its canonical key.
23
+ *
24
+ * Matching is case-insensitive on the key so that a placeholder written
25
+ * `{{glossary:Instance}}` resolves; the returned definition is always the
26
+ * canonical text.
27
+ */
28
+ export function getGlossaryTerm(term) {
29
+ const wanted = term.trim().toLowerCase();
30
+ return loadGlossary().find((t) => t.term.toLowerCase() === wanted);
31
+ }
32
+ //# sourceMappingURL=glossary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glossary.js","sourceRoot":"","sources":["../src/glossary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAG1C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AAM7D;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAwB,CAAC;IACrD,OAAO,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;AACrE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  export { loadSkills, getSkill } from './skills.js';
2
2
  export { loadTemplates, getTemplate } from './templates.js';
3
3
  export { loadGuidance } from './guidance.js';
4
+ export { loadGlossary, getGlossaryTerm } from './glossary.js';
4
5
  export { loadCapabilities, getCapabilityMap } from './capabilities.js';
5
6
  export { loadPhases, getPhase } from './phases.js';
6
7
  export { loadTutorials, getTutorial, parseTutorialSource } from './tutorials.js';
7
- export type { Skill, WorkflowTemplate, GuidanceLayer, CapabilityMap, PhaseDefinition, CodeSample, ContentReference, TutorialStep, Tutorial } from './types.js';
8
+ export type { Skill, WorkflowTemplate, GuidanceLayer, GlossaryTerm, CapabilityMap, PhaseDefinition, CodeSample, ContentReference, TutorialStep, Tutorial } from './types.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACjF,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACjF,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { loadSkills, getSkill } from './skills.js';
2
2
  export { loadTemplates, getTemplate } from './templates.js';
3
3
  export { loadGuidance } from './guidance.js';
4
+ export { loadGlossary, getGlossaryTerm } from './glossary.js';
4
5
  export { loadCapabilities, getCapabilityMap } from './capabilities.js';
5
6
  export { loadPhases, getPhase } from './phases.js';
6
7
  export { loadTutorials, getTutorial, parseTutorialSource } from './tutorials.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -19,6 +19,32 @@ export interface GuidanceLayer {
19
19
  filename: string;
20
20
  body: string;
21
21
  }
22
+ /**
23
+ * One canonical vocabulary definition.
24
+ *
25
+ * The glossary is the single source of every term's definition text
26
+ * (plain-language-vocabulary/AC-7). It is read from the content package and is
27
+ * deliberately never copied into a project's `.aidlc/` the way guidance layers
28
+ * are: guidance is project guidance users edit, framework vocabulary is not
29
+ * theirs to fork, and a copy is a thing that can drift
30
+ * (plain-language-vocabulary DD-2).
31
+ */
32
+ export interface GlossaryTerm {
33
+ /** Canonical lowercase key, e.g. `instance`. Unique across the glossary. */
34
+ term: string;
35
+ /** One plain sentence. The only definition text that exists for this term. */
36
+ definition: string;
37
+ /**
38
+ * What a reader wrongly expects the word to mean.
39
+ *
40
+ * Presence of this field *is* the collision flag — there is no separate
41
+ * boolean, because two fields that must agree eventually disagree
42
+ * (plain-language-vocabulary DD-5). A term that already means something else
43
+ * in software needs its prior meaning contradicted, not merely supplemented:
44
+ * the reader does not experience confusion, they experience false confidence.
45
+ */
46
+ not?: string;
47
+ }
22
48
  export interface CapabilityMap {
23
49
  platform: string;
24
50
  capabilities: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB"}
package/glossary.yaml ADDED
@@ -0,0 +1,96 @@
1
+ # AIDLC canonical vocabulary.
2
+ #
3
+ # The single source of every term's definition text. Read from this package by
4
+ # both consumers — the CLI resolves `{{glossary:<term>}}` placeholders in skill
5
+ # bodies with it, and the website renders /docs/glossary from it at build. It is
6
+ # deliberately NOT installed into a project's .aidlc/ the way guidance layers
7
+ # are: guidance is project guidance users edit, framework vocabulary is not
8
+ # theirs to fork, and a second copy is a thing that can drift.
9
+ #
10
+ # Schema (packages/content/src/types.ts, GlossaryTerm):
11
+ # term canonical lowercase key, unique
12
+ # definition ONE plain sentence — this is the only definition text that exists
13
+ # not optional; what a reader wrongly expects the word to mean
14
+ #
15
+ # `not` is present if and only if the term collides with an existing software
16
+ # meaning. There is no separate boolean flag, because two fields that must agree
17
+ # eventually disagree. A colliding term needs its prior meaning CONTRADICTED,
18
+ # not merely supplemented — the reader does not experience confusion, they
19
+ # experience false confidence, and discover the mismatch much later.
20
+ #
21
+ # Audience is a working developer comfortable with a terminal and git. Terms that
22
+ # a developer picks up without help do not need an entry; terms that mislead one
23
+ # do.
24
+
25
+ terms:
26
+ # --- Colliding terms. These are why this glossary exists. ---
27
+
28
+ # Definitions avoid internal em-dashes on purpose: the rendered gloss already
29
+ # opens with `**term** — `, so a second dash inside the sentence reads as a
30
+ # stutter. Colons and commas carry the same structure without it.
31
+
32
+ - term: instance
33
+ definition: >-
34
+ one unit of work, such as a single feature or fix, with its own folder of
35
+ files under `.aidlc/state/` tracking how far it has got
36
+ not: >-
37
+ an instantiated object, a running server, or a copy of the application
38
+
39
+ - term: scope
40
+ definition: >-
41
+ which phases of the lifecycle apply to a piece of work: micro runs
42
+ implementation and testing only, standard starts at requirements, full
43
+ starts at ideation
44
+ not: >-
45
+ how large or how ambitious the change is
46
+
47
+ - term: claim
48
+ definition: >-
49
+ a lock saying which session is currently working on an instance, so two
50
+ sessions in one repository cannot tread on each other
51
+ not: >-
52
+ an assertion, a support ticket, or an expense claim
53
+
54
+ # --- Non-colliding terms. One sentence is enough; no correction needed. ---
55
+ #
56
+ # Ordered by measured traffic across the shipped skills (2026-08-27):
57
+ # template 46, artifact 44, retrospective 20, gate 19, entry criteria 8.
58
+ #
59
+ # `retrospective` is the borderline case. Outside this framework it usually
60
+ # names a meeting, which is arguably a collision — but the source idea
61
+ # classifies it as needing only a definition, on the grounds that a developer
62
+ # meets no *wrong* mental model, just an unfamiliar one. Followed deliberately;
63
+ # revisit if the term turns out to mislead.
64
+
65
+ - term: template
66
+ definition: >-
67
+ a named workflow that fixes which phases a piece of work runs through:
68
+ micro-task, bugfix, quick-feature, full-feature, or spike
69
+
70
+ - term: artifact
71
+ definition: >-
72
+ a document a phase is required to produce, such as requirements.md or
73
+ test-results.md, committed alongside the code it describes
74
+
75
+ - term: retrospective
76
+ definition: >-
77
+ a short written review captured when an instance finishes, which appends
78
+ durable lessons to the guidance layer for the next instance to read
79
+
80
+ - term: gate
81
+ definition: >-
82
+ a check that must pass before work moves to the next phase, run by
83
+ `aidlc gate` in CI or by `aidlc transition` locally
84
+
85
+ - term: phase
86
+ definition: >-
87
+ one named step of the lifecycle, such as requirements or implementation,
88
+ each with its own conditions for starting and for being finished
89
+
90
+ - term: entry criteria
91
+ definition: >-
92
+ what must already be true before a phase is allowed to start
93
+
94
+ - term: exit criteria
95
+ definition: >-
96
+ what must be true before a phase can be called finished
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasensio/aidlc-content",
3
- "version": "1.10.8",
3
+ "version": "1.11.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,7 +18,8 @@
18
18
  "guidance/",
19
19
  "capabilities/",
20
20
  "phases/",
21
- "tutorials/"
21
+ "tutorials/",
22
+ "glossary.yaml"
22
23
  ],
23
24
  "engines": {
24
25
  "node": ">=18.0.0"
@@ -8,6 +8,19 @@ priority: 100
8
8
 
9
9
  You are operating within the AI Development Lifecycle (AIDLC) framework. This skill defines how you interact with lifecycle state and follow phase-driven development.
10
10
 
11
+ ## The words this framework uses
12
+
13
+ Three of these already mean something else in software, so read those definitions even if the word looks familiar — that is where the expensive misunderstandings come from.
14
+
15
+ - {{glossary:instance}}
16
+ - {{glossary:scope}}
17
+ - {{glossary:claim}}
18
+ - {{glossary:phase}}
19
+ - {{glossary:artifact}}
20
+ - {{glossary:gate}}
21
+ - {{glossary:template}}
22
+ - {{glossary:retrospective}}
23
+
11
24
  ## Lifecycle Phases
12
25
 
13
26
  The AIDLC defines seven ordered phases. Not all apply to every task:
@@ -78,7 +91,7 @@ All state lives in `.aidlc/state/<instance-name>/`. Read and write state as foll
78
91
 
79
92
  ### Writing State
80
93
 
81
- 1. **Before mutating state**, check for an existing Instance_Claim. Claims live in `<git-common-dir>/aidlc/claims/<instance>.yaml` (resolve via `git rev-parse --git-common-dir`) so every worktree of the repo sees the same claims; outside a git repo (or on instances not yet migrated) the claim is the `claim:` field in `instance.yaml`. If another session holds a non-stale claim, warn and request override confirmation.
94
+ 1. **Before mutating state**, check whether another session already holds a claim on the instance. Claims live in `<git-common-dir>/aidlc/claims/<instance>.yaml` (resolve via `git rev-parse --git-common-dir`) so every worktree of the repo sees the same claims; outside a git repo (or on instances not yet migrated) the claim is the `claim:` field in `instance.yaml`. If another session holds a non-stale claim, warn and request override confirmation.
82
95
  2. Claim with `aidlc claim <instance>` (release with `aidlc release <instance>`) — it writes the claim file and appends the claim event to `sessions.ndjson` in one step. Without the CLI, do both writes yourself: write the claim file (fields: `session`, `claimed_at`, `id_source`, optional `renewed_at`/`worktree_path`), then append `{"event":"claim|release","session_id":"...","id_source":"agent","agent":"<platform>","timestamp":"<ISO 8601 UTC>"}` to `.aidlc/state/<instance>/sessions.ndjson`. Never rewrite that file — append only. If the CLI warns your claim is near timeout, run `aidlc claim --renew <instance>`. Renew at every phase transition and before long-running operations — a claim older than `claim_timeout_minutes` counts as stale.
83
96
  3. Update phase state files as you produce artifacts.
84
97
  4. Append a transition record to `transitions.log` only on successful phase transitions. When completing a phase, set `metrics.elapsed_seconds` in its `phase-<name>.yaml` from `entered_at` → `completed_at` — cost and time reports read it.
@@ -143,7 +156,7 @@ On each lifecycle event — `on-instance-start`, `on-phase-enter`, `on-phase-exi
143
156
 
144
157
  ## User Input Protocol (Inbox)
145
158
 
146
- When a phase needs substantial input from the user — open decisions, structured requirements, extensive details — write an Input_File to `.aidlc/inbox/` instead of asking many sequential chat questions or scattering files in ad-hoc locations (`temp/`, project root):
159
+ When a phase needs substantial input from the user — open decisions, structured requirements, extensive details — write an input file to `.aidlc/inbox/` instead of asking many sequential chat questions or scattering files in ad-hoc locations (`temp/`, project root):
147
160
 
148
161
  1. Name the file `<instance>-<topic>.md` (e.g. `local-knowledge-graph-open-decisions.md`).
149
162
  2. Give each question its own section: plain-language background first (assume the user has not read the underlying spec), then the options as `- [ ]` checkboxes with trade-offs spelled out. Mark your recommendation.
@@ -177,5 +190,5 @@ Never store credentials, tokens, or secrets in state files or artifacts.
177
190
  ## Token Efficiency
178
191
 
179
192
  - Read compact state files, not full artifacts, to determine progress
180
- - Use Artifact_Summaries (`<artifact>.summary.md`) when available
193
+ - Use artifact summaries (`<artifact>.summary.md`) when available
181
194
  - Load only the skill for the current phase, not all skills at once
@@ -13,6 +13,8 @@ Before responding with this skill, check whether `.aidlc/context/` exists and co
13
13
 
14
14
  ## When to Activate
15
15
 
16
+ > {{glossary:template}}
17
+
16
18
  Respond using this skill when the user asks any of the following:
17
19
  - "How do I get started?"
18
20
  - "How do I fix a bug?"
@@ -30,6 +32,8 @@ All lifecycle work runs on instances — YAML state under `.aidlc/state/<name>/`
30
32
 
31
33
  ### "How do I fix a bug?"
32
34
 
35
+ > {{glossary:instance}}
36
+
33
37
  1. Create a lifecycle instance from the `bugfix` template (see "Creating an Instance" in **aidlc-overview**).
34
38
  2. This gives a focused workflow: reproduce the bug → fix it → test it → deploy. The bugfix template skips the design phase and requires a `reproduction.md` artifact first.
35
39
  3. Follow **aidlc-continue** at any point to pick up the next step.
@@ -95,6 +99,8 @@ If not installed yet, run `npx @rasensio/aidlc init` in a terminal. Installation
95
99
 
96
100
  ## Choosing the Right Template
97
101
 
102
+ > {{glossary:scope}}
103
+
98
104
  | You want to... | Use this template | Scope |
99
105
  |---------------|-------------------|-------|
100
106
  | Fix a bug | `bugfix` | Standard (no design) |
@@ -20,6 +20,10 @@ If `.aidlc/context/` does not exist or contains no `.md` files, defer to the **a
20
20
 
21
21
  ## Step 1 — Read State
22
22
 
23
+ > {{glossary:instance}}
24
+ > {{glossary:claim}}
25
+ > {{glossary:template}}
26
+
23
27
  1. List the directories under `.aidlc/state/`. Each directory is a lifecycle instance.
24
28
  2. For each instance, read `instance.yaml` (current phase, template, scope, claim) and the `phase-<name>.yaml` files to compute completion (complete artifacts ÷ total required artifacts).
25
29
  3. Read `.aidlc/config.yaml` for project defaults (scope, template) if present.
@@ -12,6 +12,8 @@ native_mode_hint:
12
12
  ---
13
13
  # Idea Capture and Backlog
14
14
 
15
+ > {{glossary:instance}}
16
+
15
17
  `.aidlc/ideas/` is a first-class inbox, independent of every lifecycle phase. Ideas are captured cheaply now and converted into instances later. Capture is legal at any moment: mid-implementation on another instance, from a second session, or with no instance at all.
16
18
 
17
19
  ## Idea File Format
@@ -50,6 +52,8 @@ List `.aidlc/ideas/*.md` reading only frontmatter and the `# Idea:` title line
50
52
 
51
53
  Promotion is where the backlog meets the lifecycle:
52
54
 
55
+ > {{glossary:scope}}
56
+
53
57
  1. If the idea's `depends_on` names ideas that are still `raw`, say so and confirm before proceeding — promoting out of order is allowed but should be deliberate.
54
58
  2. Choose a template and scope as usual (defaults from `.aidlc/config.yaml`; see **aidlc-getting-started**).
55
59
  3. Create the instance per "Creating an Instance" in **aidlc-overview** — including firing `on-instance-start` lifecycle actions.
@@ -12,6 +12,8 @@ Explore the problem space before committing to a solution. Define what we are bu
12
12
 
13
13
  ## Entry Criteria
14
14
 
15
+ > {{glossary:scope}}
16
+
15
17
  - A lifecycle instance has been created with a Full scope
16
18
  - The instance is claimed by this session
17
19
 
@@ -26,7 +28,9 @@ and open questions.
26
28
 
27
29
  ## Instructions
28
30
 
29
- 1. **Consult the knowledge graph first.** If the project has a knowledge graph (`.aidlc/knowledge/` exists), run `aidlc knowledge context --scope phase --phase ideation` before exploring the codebase — the graph is the first source of understanding; re-explore only what it doesn't cover. Also read all active Guidance_Layers from `.aidlc/guidance/index.yaml` (including `lessons.md` — lessons from completed instances) so fresh guidance applies without recompiling skills.
31
+ > {{glossary:artifact}}
32
+
33
+ 1. **Consult the knowledge graph first.** If the project has a knowledge graph (`.aidlc/knowledge/` exists), run `aidlc knowledge context --scope phase --phase ideation` before exploring the codebase — the graph is the first source of understanding; re-explore only what it doesn't cover. Also read all active guidance layers from `.aidlc/guidance/index.yaml` (including `lessons.md` — lessons from completed instances) so fresh guidance applies without recompiling skills.
30
34
  2. **Clarify the problem.** Ask the user what they want to build and why. Identify the core need vs. nice-to-haves.
31
35
  3. **Explore constraints.** Document: timeline, technical constraints, platform limitations, team size, budget considerations.
32
36
  4. **Generate options.** Propose 2-3 approaches. For each, note trade-offs (complexity, time, risk).
@@ -12,6 +12,8 @@ Translate the ideation output (or the user's direct request) into precise, testa
12
12
 
13
13
  ## Entry Criteria
14
14
 
15
+ > {{glossary:scope}}
16
+
15
17
  - Ideation phase complete (Full scope) OR instance created with Standard scope
16
18
  - The instance is claimed by this session
17
19
 
@@ -21,7 +23,9 @@ Translate the ideation output (or the user's direct request) into precise, testa
21
23
 
22
24
  ## Instructions
23
25
 
24
- 1. **Gather requirements.** If a Full scope, read the ideation phase's artifact for context (`idea.md` for the feature templates, `research-question.md` for `spike`; `phase-ideation.yaml` names it). Otherwise, ask the user to describe desired behavior. Read all active Guidance_Layers from `.aidlc/guidance/index.yaml` (including `lessons.md` — lessons from completed instances) so fresh guidance applies without recompiling skills.
26
+ > {{glossary:artifact}}
27
+
28
+ 1. **Gather requirements.** If a Full scope, read the ideation phase's artifact for context (`idea.md` for the feature templates, `research-question.md` for `spike`; `phase-ideation.yaml` names it). Otherwise, ask the user to describe desired behavior. Read all active guidance layers from `.aidlc/guidance/index.yaml` (including `lessons.md` — lessons from completed instances) so fresh guidance applies without recompiling skills.
25
29
  2. **Write user stories.** Use the format: "As a [role], I want [capability], so that [benefit]."
26
30
  3. **Define acceptance criteria.** Each criterion must be:
27
31
  - Specific and unambiguous
@@ -30,7 +34,7 @@ Translate the ideation output (or the user's direct request) into precise, testa
30
34
  - **Identified**: write every criterion as a list item `- AC-<n>: <text>` (bold variants `- **AC-<n>**: ...` and `- **AC-<n>:** ...` are also valid). Assign `AC-1`, `AC-2`, ... sequentially. IDs are never renumbered or reused — an amended criterion keeps its meaning or is retired: mark it `- AC-<n> (retired YYYY-MM-DD, superseded by AC-<m>): <text>` and issue a new ID. The testing-phase gate parses these IDs and fails on any active criterion without a referencing test.
31
35
  4. **Set scope boundaries.** Explicitly state what is NOT included.
32
36
  5. **Non-functional requirements.** Address performance, security, accessibility, and compatibility where relevant.
33
- 6. **For complex input or open decisions**: If requirements are extensive, or unresolved decisions block the draft, create an Input_File in `.aidlc/inbox/` following the User Input Protocol in **aidlc-overview**, rather than asking many sequential questions. Prefer drafting `requirements.md` early with unresolved points marked as explicit decision blocks — users decide better reacting to a concrete draft than answering abstract questions.
37
+ 6. **For complex input or open decisions**: If requirements are extensive, or unresolved decisions block the draft, create an input file in `.aidlc/inbox/` following the User Input Protocol in **aidlc-overview**, rather than asking many sequential questions. Prefer drafting `requirements.md` early with unresolved points marked as explicit decision blocks — users decide better reacting to a concrete draft than answering abstract questions.
34
38
 
35
39
  ## Bugfix Reproduction (bugfix template)
36
40
 
@@ -12,6 +12,8 @@ Produce a technical design that satisfies the requirements. Define architecture,
12
12
 
13
13
  ## Entry Criteria
14
14
 
15
+ > {{glossary:instance}}
16
+
15
17
  - Requirements phase complete
16
18
  - The instance is claimed by this session
17
19
 
@@ -21,8 +23,10 @@ Produce a technical design that satisfies the requirements. Define architecture,
21
23
 
22
24
  ## Instructions
23
25
 
26
+ > {{glossary:gate}}
27
+
24
28
  1. **Review requirements.** Read `requirements.md` (or its summary if one exists). Identify the key technical challenges. When requirements carry `AC-n` IDs, note in each design section which criteria it addresses — that linkage is what reviewers and the testing phase trace against.
25
- 2. **Consult the knowledge graph.** If the project has a knowledge graph (`.aidlc/knowledge/` exists), run `aidlc knowledge context --scope phase --phase design` for existing architecture, decisions, and conventions before re-deriving them from code. Also read all active Guidance_Layers from `.aidlc/guidance/index.yaml` (including `lessons.md` — lessons from completed instances) so fresh guidance applies without recompiling skills.
29
+ 2. **Consult the knowledge graph.** If the project has a knowledge graph (`.aidlc/knowledge/` exists), run `aidlc knowledge context --scope phase --phase design` for existing architecture, decisions, and conventions before re-deriving them from code. Also read all active guidance layers from `.aidlc/guidance/index.yaml` (including `lessons.md` — lessons from completed instances) so fresh guidance applies without recompiling skills.
26
30
  3. **Define architecture.** Describe the high-level structure: components, their responsibilities, and how they communicate.
27
31
  4. **Specify interfaces.** For each component boundary, define the contract (function signatures, API shapes, data types).
28
32
  5. **Data flow.** Document how data moves through the system — inputs, transformations, storage, outputs.
@@ -12,6 +12,8 @@ Produce working code that satisfies the design and requirements. Follow project
12
12
 
13
13
  ## Entry Criteria
14
14
 
15
+ > {{glossary:scope}}
16
+
15
17
  - Design phase complete (Full/Standard scope) OR instance created with Micro scope (task description + criteria exist)
16
18
  - The instance is claimed by this session
17
19
 
@@ -22,8 +24,10 @@ Produce working code that satisfies the design and requirements. Follow project
22
24
 
23
25
  ## Instructions
24
26
 
27
+ > {{glossary:gate}}
28
+
25
29
  1. **Load context.** Read `.aidlc/context/style-guide.md` and `.aidlc/context/architecture.md` if they exist. Match the project's established patterns. If the project has a knowledge graph (`.aidlc/knowledge/` exists), also run `aidlc knowledge context --scope phase --phase implementation` and query it (`aidlc knowledge query <term>`) before re-exploring code it already describes.
26
- 2. **Load guidance.** Read all active Guidance_Layers from `.aidlc/guidance/index.yaml`. Apply their rules during implementation.
30
+ 2. **Load guidance.** Read all active guidance layers from `.aidlc/guidance/index.yaml`. Apply their rules during implementation.
27
31
  3. **Execute the task breakdown.** When the instance has a `tasks.md` (produced in Design for full/quick-feature scope), read it and execute tasks in order: complete a task, then mark its checkbox `[x]` as part of the same work unit — never batch checkbox updates for later. A task that should not be done is deferred in place (`- [>] T<n>: <title> (deferred YYYY-MM-DD: <reason>)`) with a dated reason, never skipped silently or deleted; the implementation→testing gate blocks on open tasks. For bugfix scope, create the optional `tasks.md` at implementation start when the fix spans more than one commit-sized unit. For Micro scope, reference the task description and acceptance criteria directly — no task file.
28
32
  4. **Write code.** Follow the design interfaces. Match existing code style (naming, formatting, error handling patterns).
29
33
  5. **Handle sensitive operations.** Before executing any of the following, describe the action and wait for explicit user confirmation:
@@ -24,7 +24,10 @@ Verify that the implementation satisfies all acceptance criteria. Produce eviden
24
24
 
25
25
  ## Instructions
26
26
 
27
- 1. **Review acceptance criteria.** Read `requirements.md` (or task description for Micro scope). Each criterion needs at least one test. Read all active Guidance_Layers from `.aidlc/guidance/index.yaml` (including `lessons.md` — lessons from completed instances) so fresh guidance applies without recompiling skills.
27
+ > {{glossary:gate}}
28
+ > {{glossary:artifact}}
29
+
30
+ 1. **Review acceptance criteria.** Read `requirements.md` (or task description for Micro scope). Each criterion needs at least one test. Read all active guidance layers from `.aidlc/guidance/index.yaml` (including `lessons.md` — lessons from completed instances) so fresh guidance applies without recompiling skills.
28
31
  2. **Write automated tests.** Follow the project's existing test patterns:
29
32
  - Unit tests for pure logic and edge cases
30
33
  - Integration tests for component interactions
@@ -12,7 +12,7 @@ Prepare and execute the release. Ensure all preceding phases are complete, all g
12
12
 
13
13
  ## Entry Criteria
14
14
 
15
- - All preceding required phases have status `complete` in the State_Store
15
+ - All preceding required phases have status `complete` in `.aidlc/state/<instance>/`
16
16
  - Testing phase complete with all tests passing
17
17
  - Security sign-off recorded (if a security review phase is configured)
18
18
  - The instance is claimed by this session
@@ -26,6 +26,9 @@ deployment checklist.
26
26
 
27
27
  ## Instructions
28
28
 
29
+ > {{glossary:gate}}
30
+ > {{glossary:artifact}}
31
+
29
32
  1. **Validate readiness.** Check the phase state files: every preceding required phase must be complete (all required artifacts `complete`). If any gate fails, address the gap before proceeding. (CLI shortcut: `aidlc gate <instance> deployment` — the phase name is the second argument, not the first.)
30
33
  2. **Write release plan.** Document in the phase's required artifact (see Required Artifacts above):
31
34
  - What is being deployed (version, changes summary)
@@ -12,6 +12,8 @@ Ensure the deployed feature remains healthy. Update documentation, address feedb
12
12
 
13
13
  ## Entry Criteria
14
14
 
15
+ > {{glossary:instance}}
16
+
15
17
  - Deployment phase complete
16
18
  - The instance is claimed by this session
17
19
 
@@ -56,6 +58,8 @@ You MUST describe the change, confirm the target environment, and wait for expli
56
58
 
57
59
  ## Completion
58
60
 
61
+ > {{glossary:retrospective}}
62
+
59
63
  For maintenance-terminal instances the completion moment already fired on maintenance *entry* (see **aidlc-deployment**) — entering this phase means the instance is complete and its retrospective has run or is pending. Do not fire `on-instance-complete` again when closing the phase.
60
64
 
61
65
  When exit criteria are met, update `phase-maintenance.yaml` status to `complete` and append a transition record to `transitions.log`. If no retrospective exists for the instance (legacy completion paths), offer to run the **aidlc-retrospective** skill.
@@ -11,6 +11,8 @@ priority: 60
11
11
 
12
12
  Provide a structured, critical review of a lifecycle artifact from fresh context. Surface ambiguities, contradictions, missing edge cases, and risks before the artifact drives downstream work.
13
13
 
14
+ > {{glossary:artifact}}
15
+
14
16
  ## Important
15
17
 
16
18
  You MUST perform this review with fresh eyes. If you authored the artifact being reviewed, delegate to a separate session or subagent. Self-review defeats the purpose.
@@ -70,7 +72,9 @@ reviewer: <session-id>
70
72
 
71
73
  ## Review Gate
72
74
 
73
- When a Workflow_Template configures an adversarial review gate for a phase, the phase transition is blocked until:
75
+ > {{glossary:gate}}
76
+
77
+ When a workflow template configures an adversarial review gate for a phase, the phase transition is blocked until:
74
78
  - A findings file exists for the phase's required artifacts
75
79
  - No finding with severity `critical` has status `open`
76
80
 
@@ -10,8 +10,12 @@ priority: 70
10
10
 
11
11
  Resume an in-progress lifecycle instance efficiently. Determine where work left off and continue from that exact point without re-reading full artifacts or re-explaining context.
12
12
 
13
+ > {{glossary:instance}}
14
+
13
15
  ## Instructions
14
16
 
17
+ > {{glossary:claim}}
18
+
15
19
  1. **Load state.** Read `.aidlc/state/<instance>/instance.yaml` to get:
16
20
  - Current phase
17
21
  - Template name
@@ -57,4 +61,4 @@ If continuation leads to a phase that involves sensitive operations (Deployment,
57
61
 
58
62
  - Do NOT re-read unchanged files from prior sessions
59
63
  - Use state fields to determine progress, not artifact content
60
- - Load Artifact_Summaries in place of full documents when summaries exist
64
+ - Load artifact summaries in place of full documents when summaries exist
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: aidlc-add-action
3
- description: Translates natural language automation descriptions into Lifecycle_Action declarations
3
+ description: Translates natural language automation descriptions into lifecycle action declarations
4
4
  phase: implementation
5
5
  priority: 55
6
6
  ---
@@ -8,7 +8,7 @@ priority: 55
8
8
 
9
9
  ## Purpose
10
10
 
11
- Help the user create Lifecycle_Actions from natural language descriptions. Translate intent into a concrete, validated `.aidlc/actions.yaml` entry.
11
+ Help the user create lifecycle actions from natural language descriptions. Translate intent into a concrete, validated `.aidlc/actions.yaml` entry.
12
12
 
13
13
  ## Instructions
14
14
 
@@ -31,6 +31,8 @@ system; skills for repeatable operations of the system.*
31
31
  If the description is really a new capability — the system cannot do this yet, and doing it once requires
32
32
  building something — say so plainly and offer the alternative:
33
33
 
34
+ > {{glossary:instance}}
35
+
34
36
  > "This sounds like a change to the system rather than a repeatable operation of it: <reason>. That
35
37
  > usually belongs in the lifecycle. I can capture it as an idea (`aidlc-idea`) or start an instance
36
38
  > instead. Or if you would rather have the skill anyway, say so and I will generate it."
@@ -11,6 +11,8 @@ trigger: When an instance reaches its completion moment, a retro-pending marker
11
11
 
12
12
  Close the feedback loop: when an instance completes, capture what the work taught us while it is fresh, and write durable lessons where the next instance will read them. This is the system-level quality mechanism — gates and reviews protect one instance; retrospectives make the next one start smarter.
13
13
 
14
+ > {{glossary:instance}}
15
+
14
16
  ## When to Run
15
17
 
16
18
  - **At every instance's completion moment**, regardless of scope or template. The completion moment is the last applicable phase (template × scope) reaching complete — except when that phase is maintenance, where **entering** maintenance is the moment (maintenance is open-ended).
@@ -21,6 +23,8 @@ Run the retro **before** any completion cleanup (worktree removal, claim release
21
23
 
22
24
  ## Retro Flow
23
25
 
26
+ > {{glossary:retrospective}}
27
+
24
28
  1. **Idempotency check.** If `retrospective.md` already exists in the instance state dir, offer to update or skip — never duplicate. A skip still removes the retro-pending marker.
25
29
  2. **Gather state.** Read `instance.yaml`, `phase-*.yaml`, and `transitions.log`. For the cost summary, prefer `aidlc cost <instance>` (it applies fidelity precedence); only read `costs.ndjson` raw when the CLI is unavailable, and mark that summary approximate. No cost data → omit the cost section entirely, never write zeros.
26
30
  3. **Ask — one round-trip.** Three questions in a single message: what surprised us? what would we do differently? what took longer than expected? For **Micro scope**, compress to one question: "anything surprising, worth doing differently, or slower than expected?" Declining the retro is fine: remove the marker, write nothing.