musubix3 0.1.19 → 0.1.21
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/.github/plugin/marketplace.json +2 -2
- package/.github/skills/sdd-change/SKILL.md +28 -45
- package/CHANGELOG.md +126 -0
- package/README-ja.md +171 -5
- package/README.md +185 -8
- package/dist/packages/analysis/src/adapters.d.ts +2 -2
- package/dist/packages/analysis/src/adapters.js +33 -3
- package/dist/packages/analysis/src/adapters.js.map +1 -1
- package/dist/packages/analysis/src/approval-record.js +4 -0
- package/dist/packages/analysis/src/approval-record.js.map +1 -1
- package/dist/packages/analysis/src/approval.d.ts +51 -0
- package/dist/packages/analysis/src/approval.js +341 -2
- package/dist/packages/analysis/src/approval.js.map +1 -1
- package/dist/packages/analysis/src/attestation.js +4 -0
- package/dist/packages/analysis/src/attestation.js.map +1 -1
- package/dist/packages/analysis/src/change-evidence.d.ts +65 -8
- package/dist/packages/analysis/src/change-evidence.js +173 -46
- package/dist/packages/analysis/src/change-evidence.js.map +1 -1
- package/dist/packages/analysis/src/change-waiver.d.ts +46 -13
- package/dist/packages/analysis/src/change-waiver.js +481 -152
- package/dist/packages/analysis/src/change-waiver.js.map +1 -1
- package/dist/packages/analysis/src/change.d.ts +1 -0
- package/dist/packages/analysis/src/change.js +194 -66
- package/dist/packages/analysis/src/change.js.map +1 -1
- package/dist/packages/analysis/src/evidence-merge-guard.d.ts +9 -0
- package/dist/packages/analysis/src/evidence-merge-guard.js +62 -0
- package/dist/packages/analysis/src/evidence-merge-guard.js.map +1 -0
- package/dist/packages/analysis/src/evidence-merge.d.ts +55 -0
- package/dist/packages/analysis/src/evidence-merge.js +1182 -0
- package/dist/packages/analysis/src/evidence-merge.js.map +1 -0
- package/dist/packages/analysis/src/evidence-writer-lock.d.ts +189 -0
- package/dist/packages/analysis/src/evidence-writer-lock.js +843 -0
- package/dist/packages/analysis/src/evidence-writer-lock.js.map +1 -0
- package/dist/packages/analysis/src/files.js +11 -0
- package/dist/packages/analysis/src/files.js.map +1 -1
- package/dist/packages/analysis/src/formal.js +7 -0
- package/dist/packages/analysis/src/formal.js.map +1 -1
- package/dist/packages/analysis/src/gate.d.ts +1 -1
- package/dist/packages/analysis/src/gate.js +23 -6
- package/dist/packages/analysis/src/gate.js.map +1 -1
- package/dist/packages/analysis/src/graph.js +6 -0
- package/dist/packages/analysis/src/graph.js.map +1 -1
- package/dist/packages/analysis/src/index.d.ts +3 -0
- package/dist/packages/analysis/src/index.js +3 -0
- package/dist/packages/analysis/src/index.js.map +1 -1
- package/dist/packages/analysis/src/knowledge.js +4 -0
- package/dist/packages/analysis/src/knowledge.js.map +1 -1
- package/dist/packages/analysis/src/model-correspondence.js +5 -1
- package/dist/packages/analysis/src/model-correspondence.js.map +1 -1
- package/dist/packages/analysis/src/mutation.js +4 -0
- package/dist/packages/analysis/src/mutation.js.map +1 -1
- package/dist/packages/analysis/src/order.d.ts +16 -1
- package/dist/packages/analysis/src/order.js +10 -0
- package/dist/packages/analysis/src/order.js.map +1 -1
- package/dist/packages/analysis/src/performance.js +5 -1
- package/dist/packages/analysis/src/performance.js.map +1 -1
- package/dist/packages/analysis/src/quality-refresh.d.ts +18 -0
- package/dist/packages/analysis/src/quality-refresh.js +312 -0
- package/dist/packages/analysis/src/quality-refresh.js.map +1 -0
- package/dist/packages/analysis/src/tdd.d.ts +86 -3
- package/dist/packages/analysis/src/tdd.js +604 -52
- package/dist/packages/analysis/src/tdd.js.map +1 -1
- package/dist/packages/analysis/src/trace.d.ts +24 -0
- package/dist/packages/analysis/src/trace.js +101 -3
- package/dist/packages/analysis/src/trace.js.map +1 -1
- package/dist/packages/analysis/src/workflow-waiver.d.ts +6 -2
- package/dist/packages/analysis/src/workflow-waiver.js +9 -5
- package/dist/packages/analysis/src/workflow-waiver.js.map +1 -1
- package/dist/packages/analysis/src/workflow.d.ts +1 -1
- package/dist/packages/analysis/src/workflow.js +103 -21
- package/dist/packages/analysis/src/workflow.js.map +1 -1
- package/dist/packages/cli/src/install.js +51 -6
- package/dist/packages/cli/src/install.js.map +1 -1
- package/dist/packages/cli/src/main.js +252 -79
- package/dist/packages/cli/src/main.js.map +1 -1
- package/dist/packages/domain/src/design.js +8 -1
- package/dist/packages/domain/src/design.js.map +1 -1
- package/dist/packages/domain/src/types.d.ts +1 -0
- package/package.json +7 -2
- package/plugin.json +1 -1
|
@@ -1,9 +1,28 @@
|
|
|
1
|
+
// CHANGE-0038: scaffold install no longer copies stale canonical graph into new feature trace.json (DES-SCOPED-FEATURE-TRACE-ARTIFACTS-001).
|
|
2
|
+
// CHANGE-0038 (corrective Red-Implementation-Green batch): re-proved TDD evidence inside the change's valid order window.
|
|
3
|
+
// CHANGE-0038 (2nd corrective batch): confirmed by expanded acceptance-clause test coverage; no behavior change.
|
|
4
|
+
// CHANGE-0038 (3rd corrective batch): install now restores a missing canonical
|
|
5
|
+
// graph and uses the change-detecting writer for the feature trace too.
|
|
6
|
+
// CHANGE-0038 (4th corrective batch): genuinely reports 'replace' (not stale
|
|
7
|
+
// 'preserve') when canonical-missing recovery actually rewrites the feature
|
|
8
|
+
// trace; proved via temporary regression injection.
|
|
9
|
+
// CHANGE-0038 (5th corrective batch): the same 'replace'-reporting fix above
|
|
10
|
+
// is also attributed to REQ-SCOPED-FEATURE-TRACE-ARTIFACTS-002, since
|
|
11
|
+
// CODE-SCOPED-FEATURE-TRACE-ARTIFACTS-008 implements both requirements.
|
|
1
12
|
import { readdir, mkdir } from 'node:fs/promises';
|
|
2
13
|
import { resolve } from 'node:path';
|
|
3
|
-
import { buildTrace, defaultConfig, defaultPolicyBaseline, exists, readText, safePath, writeJson, writeText, runProcess } from '../../analysis/src/index.js';
|
|
14
|
+
import { assertCoordinatedEvidenceRead, buildTrace, canonicalSort, canonicalTracePath, defaultConfig, defaultPolicyBaseline, exists, featureTraceProjection, readText, safePath, writeJson, writeText, writeTraceIfChanged, runProcess, withEvidenceWriterLock, } from '../../analysis/src/index.js';
|
|
4
15
|
export const skillNames = ['sdd-change', 'sdd-requirements', 'sdd-design', 'sdd-implementation', 'sdd-traceability', 'sdd-quality', 'sdd-knowledge', 'sdd-formal-codegraph', 'sdd-issue-report'];
|
|
5
16
|
export async function install(root, packageRoot, options = {}) {
|
|
6
17
|
root = resolve(root);
|
|
18
|
+
if (options.dryRun) {
|
|
19
|
+
if (await exists(root))
|
|
20
|
+
await assertCoordinatedEvidenceRead(root);
|
|
21
|
+
return installUnlocked(root, packageRoot, options);
|
|
22
|
+
}
|
|
23
|
+
return withEvidenceWriterLock(root, 'init', () => installUnlocked(root, packageRoot, options));
|
|
24
|
+
}
|
|
25
|
+
async function installUnlocked(root, packageRoot, options) {
|
|
7
26
|
const feature = options.feature ?? 'example';
|
|
8
27
|
if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(feature))
|
|
9
28
|
throw new Error('Feature slug must be lowercase kebab-case.');
|
|
@@ -41,16 +60,29 @@ export async function install(root, packageRoot, options = {}) {
|
|
|
41
60
|
}
|
|
42
61
|
const ignorePath = await safePath(root, '.gitignore');
|
|
43
62
|
const oldIgnore = await exists(ignorePath) ? await readText(root, '.gitignore') : '';
|
|
44
|
-
|
|
45
|
-
|
|
63
|
+
const requiredIgnores = [
|
|
64
|
+
'/.musubix/cache/',
|
|
65
|
+
'/.musubix/evidence/.writer-lock.json',
|
|
66
|
+
'/.musubix/evidence/.writer-lock.*.json',
|
|
67
|
+
];
|
|
68
|
+
const ignored = new Set(oldIgnore.split(/\r?\n/).map((line) => line.trim()));
|
|
69
|
+
const missingIgnores = requiredIgnores.filter((entry) => !ignored.has(entry));
|
|
70
|
+
if (missingIgnores.length > 0) {
|
|
71
|
+
writes.set('.gitignore', `${oldIgnore}${oldIgnore && !oldIgnore.endsWith('\n') ? '\n' : ''}\n# musubix3 generated coordination files\n${missingIgnores.join('\n')}\n`);
|
|
46
72
|
actions.push({ path: '.gitignore', action: oldIgnore ? 'merge' : 'create' });
|
|
47
73
|
}
|
|
48
74
|
else
|
|
49
75
|
actions.push({ path: '.gitignore', action: 'unchanged' });
|
|
76
|
+
/** @id CODE-SCOPED-FEATURE-TRACE-ARTIFACTS-008
|
|
77
|
+
* @implements REQ-SCOPED-FEATURE-TRACE-ARTIFACTS-002 REQ-SCOPED-FEATURE-TRACE-ARTIFACTS-003
|
|
78
|
+
* @design DES-SCOPED-FEATURE-TRACE-ARTIFACTS-002 DES-SCOPED-FEATURE-TRACE-ARTIFACTS-003
|
|
79
|
+
*/
|
|
50
80
|
const tracePath = `.musubix/features/${feature}/trace.json`;
|
|
51
81
|
const traceExists = await exists(await safePath(root, tracePath));
|
|
52
|
-
const
|
|
53
|
-
|
|
82
|
+
const canonicalExists = await exists(await safePath(root, canonicalTracePath));
|
|
83
|
+
const generateTrace = !traceExists || !canonicalExists || options.force;
|
|
84
|
+
const traceAction = { path: tracePath, action: !traceExists ? 'create' : options.force ? 'replace' : 'preserve' };
|
|
85
|
+
actions.push(traceAction);
|
|
54
86
|
const cachePath = await safePath(root, '.musubix/cache');
|
|
55
87
|
if (!options.dryRun) {
|
|
56
88
|
await mkdir(root, { recursive: true });
|
|
@@ -59,8 +91,14 @@ export async function install(root, packageRoot, options = {}) {
|
|
|
59
91
|
await mkdir(cachePath, { recursive: true });
|
|
60
92
|
if (generateTrace) {
|
|
61
93
|
const trace = await buildTrace(root, false);
|
|
62
|
-
await
|
|
94
|
+
const traceWritten = await writeTraceIfChanged(root, tracePath, featureTraceProjection(trace, `.musubix/features/${feature}`));
|
|
95
|
+
// A feature trace that already existed (so the action above defaulted to
|
|
96
|
+
// 'preserve') may still be rewritten here when it's regenerated to
|
|
97
|
+
// restore a missing canonical graph; reflect that actual outcome.
|
|
98
|
+
if (traceExists && !options.force && traceWritten)
|
|
99
|
+
traceAction.action = 'replace';
|
|
63
100
|
await writeJson(root, '.musubix/cache/trace.json', trace);
|
|
101
|
+
await writeTraceIfChanged(root, canonicalTracePath, canonicalSort(trace));
|
|
64
102
|
}
|
|
65
103
|
}
|
|
66
104
|
return { dryRun: options.dryRun ?? false, actions };
|
|
@@ -71,6 +109,13 @@ export async function install(root, packageRoot, options = {}) {
|
|
|
71
109
|
*/
|
|
72
110
|
export async function upgradeSkills(root, packageRoot, options = {}) {
|
|
73
111
|
root = resolve(root);
|
|
112
|
+
if (options.dryRun) {
|
|
113
|
+
await assertCoordinatedEvidenceRead(root);
|
|
114
|
+
return upgradeSkillsUnlocked(root, packageRoot, options);
|
|
115
|
+
}
|
|
116
|
+
return withEvidenceWriterLock(root, 'upgrade', () => upgradeSkillsUnlocked(root, packageRoot, options));
|
|
117
|
+
}
|
|
118
|
+
async function upgradeSkillsUnlocked(root, packageRoot, options) {
|
|
74
119
|
const planned = new Map();
|
|
75
120
|
for (const name of skillNames) {
|
|
76
121
|
const directory = `.github/skills/${name}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../packages/cli/src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../packages/cli/src/install.ts"],"names":[],"mappings":"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"}
|