@context-forge/core 0.10.7 → 0.12.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.
Files changed (38) hide show
  1. package/dist/introspection/ConsistencyChecker.d.ts +13 -6
  2. package/dist/introspection/ConsistencyChecker.d.ts.map +1 -1
  3. package/dist/introspection/ConsistencyChecker.js +46 -56
  4. package/dist/introspection/ConsistencyChecker.js.map +1 -1
  5. package/dist/introspection/WorkflowNavigator.d.ts +3 -2
  6. package/dist/introspection/WorkflowNavigator.d.ts.map +1 -1
  7. package/dist/introspection/WorkflowNavigator.js +4 -3
  8. package/dist/introspection/WorkflowNavigator.js.map +1 -1
  9. package/dist/introspection/parsers/statusNormalizer.d.ts +10 -0
  10. package/dist/introspection/parsers/statusNormalizer.d.ts.map +1 -1
  11. package/dist/introspection/parsers/statusNormalizer.js +43 -0
  12. package/dist/introspection/parsers/statusNormalizer.js.map +1 -1
  13. package/dist/introspection/types.d.ts +2 -2
  14. package/dist/introspection/types.js +2 -2
  15. package/dist/introspection/writers/markdownWriter.d.ts +4 -3
  16. package/dist/introspection/writers/markdownWriter.d.ts.map +1 -1
  17. package/dist/introspection/writers/markdownWriter.js +30 -22
  18. package/dist/introspection/writers/markdownWriter.js.map +1 -1
  19. package/dist/node.d.ts +1 -0
  20. package/dist/node.d.ts.map +1 -1
  21. package/dist/node.js +1 -0
  22. package/dist/node.js.map +1 -1
  23. package/dist/schema/frontmatterFileValidator.d.ts +24 -0
  24. package/dist/schema/frontmatterFileValidator.d.ts.map +1 -0
  25. package/dist/schema/frontmatterFileValidator.js +86 -0
  26. package/dist/schema/frontmatterFileValidator.js.map +1 -0
  27. package/dist/schema/frontmatterSchema.d.ts +1 -1
  28. package/dist/schema/frontmatterSchema.d.ts.map +1 -1
  29. package/dist/schema/frontmatterSchema.js +46 -22
  30. package/dist/schema/frontmatterSchema.js.map +1 -1
  31. package/dist/services/ContextEmbedder.d.ts.map +1 -1
  32. package/dist/services/ContextEmbedder.js +26 -7
  33. package/dist/services/ContextEmbedder.js.map +1 -1
  34. package/dist/utils/worktree-overlay.d.ts +4 -3
  35. package/dist/utils/worktree-overlay.d.ts.map +1 -1
  36. package/dist/utils/worktree-overlay.js +6 -3
  37. package/dist/utils/worktree-overlay.js.map +1 -1
  38. package/package.json +1 -1
@@ -3,15 +3,10 @@
3
3
  * Maps each docType to its required YAML frontmatter fields.
4
4
  * Source of truth derived from file-naming-conventions.md.
5
5
  */
6
- import { normalizeStatus } from '../introspection/parsers/statusNormalizer.js';
6
+ import { STATUS } from '../introspection/types.js';
7
+ import { suggestStatus } from '../introspection/parsers/statusNormalizer.js';
7
8
  /** Canonical valid status values across all docTypes. */
8
- export const VALID_STATUSES = [
9
- 'not_started',
10
- 'in_progress',
11
- 'complete',
12
- 'deferred',
13
- 'deprecated',
14
- ];
9
+ export const VALID_STATUSES = Object.values(STATUS);
15
10
  /** Per-docType frontmatter schemas — required fields only. */
16
11
  export const FRONTMATTER_SCHEMAS = {
17
12
  concept: {
@@ -96,6 +91,30 @@ export const FRONTMATTER_SCHEMAS = {
96
91
  dateUpdated: { required: true },
97
92
  },
98
93
  },
94
+ // Squadron machine-artifact docTypes (#73): append-only records of a moment
95
+ // with no lifecycle, so no `status` and no `project`. `dateUpdated` is
96
+ // deliberately NOT required — a single-file validator has no evidence an
97
+ // edit occurred after creation, and requiring the field would make the
98
+ // existing backfill (below) manufacture a false claim by copying
99
+ // dateCreated into it. Do not "fix" this by adding dateUpdated here.
100
+ 'review-resolution': {
101
+ fields: {
102
+ docType: { required: true, values: ['review-resolution'] },
103
+ dateCreated: { required: true },
104
+ },
105
+ },
106
+ 'gate-evidence': {
107
+ fields: {
108
+ docType: { required: true, values: ['gate-evidence'] },
109
+ dateCreated: { required: true },
110
+ },
111
+ },
112
+ devlog: {
113
+ fields: {
114
+ docType: { required: true, values: ['devlog'] },
115
+ dateCreated: { required: true },
116
+ },
117
+ },
99
118
  };
100
119
  /** Map filename segment (from NNN-segment.name.md) to docType. */
101
120
  const FILENAME_SEGMENT_TO_DOCTYPE = {
@@ -184,7 +203,7 @@ export function validateFrontmatter(filePath, data, options) {
184
203
  // Determine if we can auto-fix this field
185
204
  let fixValue;
186
205
  if (field === 'status') {
187
- fixValue = 'not_started';
206
+ fixValue = STATUS.NotStarted;
188
207
  }
189
208
  else if (field === 'dateUpdated' && data.dateCreated && String(data.dateCreated).trim() !== '') {
190
209
  fixValue = String(data.dateCreated).trim();
@@ -218,22 +237,27 @@ export function validateFrontmatter(filePath, data, options) {
218
237
  if (value === undefined || value === null || String(value).trim() === '')
219
238
  continue;
220
239
  const normalizedValue = String(value).trim();
221
- // For status field: delegate to the same alias set cf list arch uses (normalizeStatus),
222
- // so a status cf list arch would call "unreadable" also fails schema validation here.
223
- // normalizeStatus's canonical vocabulary (STATUS.*) is hyphenated (e.g. 'in-progress',
224
- // 'not-started'); VALID_STATUSES here is underscored translate before comparing.
225
- let effectiveValue = normalizedValue;
226
- if (field === 'status') {
227
- const normalized = normalizeStatus(effectiveValue);
228
- effectiveValue = normalized ? normalized.replace(/-/g, '_') : effectiveValue.replace(/[-\s]/g, '_');
229
- }
230
- if (!def.values.includes(effectiveValue)) {
231
- findings.push({
240
+ // Validation is strict: compare the value as written against def.values directly.
241
+ // For status specifically, this means only the canonical VALID_STATUSES spellings
242
+ // pass historical aliases like 'in-progress' are rejected here even though
243
+ // normalizeStatus() (used elsewhere, e.g. cf list/status) still reads them leniently.
244
+ // The two are intentionally asymmetric: read leniently, validate strictly. When the
245
+ // intended canonical value is recoverable (alias or close typo), the finding carries
246
+ // a fixAction so `cf check --fix` migrates the document instead of stranding it.
247
+ if (!def.values.includes(normalizedValue)) {
248
+ const suggestion = field === 'status' ? suggestStatus(normalizedValue) : undefined;
249
+ const finding = {
232
250
  rule: 'frontmatter-schema',
233
251
  severity: 'warning',
234
252
  filePath,
235
- description: `Invalid value '${normalizedValue}' for field '${field}' on docType '${data.docType}' (expected: ${def.values.join(', ')})`,
236
- });
253
+ description: suggestion
254
+ ? `Invalid value '${normalizedValue}' for field '${field}' on docType '${data.docType}' (expected: ${def.values.join(', ')}; will fix to '${suggestion}')`
255
+ : `Invalid value '${normalizedValue}' for field '${field}' on docType '${data.docType}' (expected: ${def.values.join(', ')})`,
256
+ };
257
+ if (suggestion) {
258
+ finding.fixAction = { type: 'update-frontmatter', field, value: suggestion };
259
+ }
260
+ findings.push(finding);
237
261
  }
238
262
  }
239
263
  return findings;
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatterSchema.js","sourceRoot":"","sources":["../../src/schema/frontmatterSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontmatterSchema.js","sourceRoot":"","sources":["../../src/schema/frontmatterSchema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextEmbedder.d.ts","sourceRoot":"","sources":["../../src/services/ContextEmbedder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA4CvD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAiCjB"}
1
+ {"version":3,"file":"ContextEmbedder.d.ts","sourceRoot":"","sources":["../../src/services/ContextEmbedder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAwDvD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CA2CjB"}
@@ -14,6 +14,17 @@ const EMBEDDABLE_FIELDS = [
14
14
  'fileSpec',
15
15
  'fileConcept',
16
16
  ];
17
+ /**
18
+ * Conventions files in read-priority order. First match wins — embedding every
19
+ * match would duplicate near-identical always-on rules in a prompt whose entire
20
+ * reason for existing is that the model cannot read files itself.
21
+ *
22
+ * Deliberately not merged with the CLI's TARGETS table (packages/cli/src/commands/
23
+ * setup-ide.ts): that table is a write-ownership map keyed by IDE target; this is a
24
+ * read-priority list with no concept of IDE targets. Coupling them would force core
25
+ * to know about CLI target names just to answer "what are this project's conventions?"
26
+ */
27
+ const CONVENTIONS_FILES = ['CLAUDE.md', 'AGENTS.md', '.github/copilot-instructions.md'];
17
28
  async function resolveAndRead(field, stem, projectPath) {
18
29
  const relPath = resolveArtifactPath(field, stem);
19
30
  if (!relPath) {
@@ -58,14 +69,22 @@ export async function embedReferencedFiles(project, projectPath, contextString)
58
69
  blocks.push(fencedBlock(result.relPath, result.content));
59
70
  }
60
71
  }
61
- // Append CLAUDE.md if presentproject conventions required for design/task phases
62
- const claudeMdPath = join(projectPath, 'CLAUDE.md');
63
- try {
64
- const claudeContent = await readFile(claudeMdPath, 'utf-8');
65
- blocks.push(fencedBlock('CLAUDE.md', claudeContent));
72
+ // Embed the project's conventions file first match in CONVENTIONS_FILES wins
73
+ let conventionsFound = false;
74
+ for (const relPath of CONVENTIONS_FILES) {
75
+ const absPath = join(projectPath, ...relPath.split('/'));
76
+ try {
77
+ const content = await readFile(absPath, 'utf-8');
78
+ blocks.push(fencedBlock(relPath, content));
79
+ conventionsFound = true;
80
+ break;
81
+ }
82
+ catch {
83
+ continue;
84
+ }
66
85
  }
67
- catch {
68
- // CLAUDE.md is optional — no warning if absent
86
+ if (!conventionsFound) {
87
+ warnings.push(`Warning: no conventions file found (looked for: ${CONVENTIONS_FILES.join(', ')})the embedded context has no project conventions`);
69
88
  }
70
89
  if (blocks.length === 0 && warnings.length === 0)
71
90
  return contextString;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextEmbedder.js","sourceRoot":"","sources":["../../src/services/ContextEmbedder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextEmbedder.js","sourceRoot":"","sources":["../../src/services/ContextEmbedder.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,10 @@ import type { ProjectData } from '../types/index.js';
3
3
  export declare function applyWorktreeOverlay(project: ProjectData, worktreeId: string): ProjectData;
4
4
  /**
5
5
  * Get the index range for filtering, if applicable.
6
- * Returns the worktree's indexRange for ALL worktrees (including default).
7
- * Returns undefined only when no worktreeId, no worktrees array, or
8
- * worktree not found (projects without worktrees no filtering).
6
+ * Returns undefined (no filtering) when no worktreeId, no worktrees array,
7
+ * worktree not found, or only one worktree is configured range filtering
8
+ * exists to isolate multiple worktrees from each other, so a lone worktree
9
+ * has nothing to isolate and filtering would only hide the user's own work.
9
10
  */
10
11
  export declare function getWorktreeIndexRange(project: ProjectData, worktreeId?: string): [number, number] | undefined;
11
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-overlay.d.ts","sourceRoot":"","sources":["../../src/utils/worktree-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,0DAA0D;AAC1D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAc1F;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAK9B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACvB,OAAO,CAGT"}
1
+ {"version":3,"file":"worktree-overlay.d.ts","sourceRoot":"","sources":["../../src/utils/worktree-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,0DAA0D;AAC1D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAc1F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAM9B;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACvB,OAAO,CAGT"}
@@ -17,13 +17,16 @@ export function applyWorktreeOverlay(project, worktreeId) {
17
17
  }
18
18
  /**
19
19
  * Get the index range for filtering, if applicable.
20
- * Returns the worktree's indexRange for ALL worktrees (including default).
21
- * Returns undefined only when no worktreeId, no worktrees array, or
22
- * worktree not found (projects without worktrees no filtering).
20
+ * Returns undefined (no filtering) when no worktreeId, no worktrees array,
21
+ * worktree not found, or only one worktree is configured range filtering
22
+ * exists to isolate multiple worktrees from each other, so a lone worktree
23
+ * has nothing to isolate and filtering would only hide the user's own work.
23
24
  */
24
25
  export function getWorktreeIndexRange(project, worktreeId) {
25
26
  if (!worktreeId || !project.worktrees)
26
27
  return undefined;
28
+ if (project.worktrees.length === 1)
29
+ return undefined;
27
30
  const wt = project.worktrees.find((w) => w.id === worktreeId);
28
31
  if (!wt)
29
32
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-overlay.js","sourceRoot":"","sources":["../../src/utils/worktree-overlay.ts"],"names":[],"mappings":"AAEA,0DAA0D;AAC1D,MAAM,UAAU,oBAAoB,CAAC,OAAoB,EAAE,UAAkB;IAC3E,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IACtE,IAAI,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IACxB,OAAO;QACL,GAAG,OAAO;QACV,GAAG,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC;QACxD,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;QACrC,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,QAAQ,EAAE,EAAE,CAAC,OAAO;QACpB,aAAa,EAAE,EAAE,CAAC,SAAS;QAC3B,SAAS,EAAE,EAAE,CAAC,WAAW;QACzB,SAAS,EAAE,EAAE,CAAC,cAAc;KAC7B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAoB,EACpB,UAAmB;IAEnB,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC,UAAU,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAoB,EACpB,UAAmB;IAEnB,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,OAAO,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,KAAwB;IAExB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"worktree-overlay.js","sourceRoot":"","sources":["../../src/utils/worktree-overlay.ts"],"names":[],"mappings":"AAEA,0DAA0D;AAC1D,MAAM,UAAU,oBAAoB,CAAC,OAAoB,EAAE,UAAkB;IAC3E,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IACtE,IAAI,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IACxB,OAAO;QACL,GAAG,OAAO;QACV,GAAG,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC;QACxD,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;QACrC,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,QAAQ,EAAE,EAAE,CAAC,OAAO;QACpB,aAAa,EAAE,EAAE,CAAC,SAAS;QAC3B,SAAS,EAAE,EAAE,CAAC,WAAW;QACzB,SAAS,EAAE,EAAE,CAAC,cAAc;KAC7B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAoB,EACpB,UAAmB;IAEnB,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC,UAAU,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAoB,EACpB,UAAmB;IAEnB,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,OAAO,EAAE,EAAE,aAAa,KAAK,IAAI,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,KAAwB;IAExB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@context-forge/core",
3
- "version": "0.10.7",
3
+ "version": "0.12.0",
4
4
  "description": "Core context generation engine for Context Forge — template processing, project state, prompt assembly",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",