create-agdf 0.4.2 → 0.4.4
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/bin/create-agdf.js
CHANGED
|
@@ -1188,6 +1188,9 @@ function evaluateDoctor(targetDir) {
|
|
|
1188
1188
|
}
|
|
1189
1189
|
|
|
1190
1190
|
const runState = readRunState(targetDir);
|
|
1191
|
+
for (const finding of analyzeDurableGateArtefactConsistency(runState)) {
|
|
1192
|
+
addFinding(findings, finding.severity, finding.code, finding.message, finding.path, finding.next_step);
|
|
1193
|
+
}
|
|
1191
1194
|
for (const finding of analyzeDeliveryMap(runState).findings) {
|
|
1192
1195
|
addFinding(findings, finding.severity, finding.code, finding.message, finding.path, finding.next_step);
|
|
1193
1196
|
}
|
|
@@ -1421,6 +1424,38 @@ function isDurableGateArtefactSatisfied(runState, gate) {
|
|
|
1421
1424
|
return artefact.status === "approved";
|
|
1422
1425
|
}
|
|
1423
1426
|
|
|
1427
|
+
function expectedDurableArtefactStatuses(gate) {
|
|
1428
|
+
return gate === "QA" ? ["pass", "passed"] : ["approved"];
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
function describeDurableArtefactStatuses(gate) {
|
|
1432
|
+
return expectedDurableArtefactStatuses(gate).map((status) => `\`${status}\``).join(" or ");
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
function analyzeDurableGateArtefactConsistency(runState) {
|
|
1436
|
+
const findings = [];
|
|
1437
|
+
|
|
1438
|
+
for (const gate of durableGateArtefacts) {
|
|
1439
|
+
if (gateApprovalStatus(runState, gate) !== "approved") continue;
|
|
1440
|
+
|
|
1441
|
+
const artefact = gateArtefactStatus(runState, gate);
|
|
1442
|
+
if (!artefact.path || isPlaceholderValue(artefact.path) || !artefact.status) continue;
|
|
1443
|
+
|
|
1444
|
+
const expectedStatuses = expectedDurableArtefactStatuses(gate);
|
|
1445
|
+
if (expectedStatuses.includes(artefact.status)) continue;
|
|
1446
|
+
|
|
1447
|
+
findings.push({
|
|
1448
|
+
severity: "revise",
|
|
1449
|
+
code: "AGDF_GATE_ARTEFACT_STATUS_INCONSISTENT",
|
|
1450
|
+
message: `${gate} approval is recorded, but the durable artefact row uses status \`${artefact.status}\`; expected ${describeDurableArtefactStatuses(gate)}.`,
|
|
1451
|
+
path: runState.path,
|
|
1452
|
+
next_step: `Update the ${gate} artefact row in AGDF_RUN.md to use the gate-specific durable status vocabulary.`,
|
|
1453
|
+
});
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
return findings;
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1424
1459
|
function isInternalStepSatisfied(runState, step) {
|
|
1425
1460
|
const artefact = runState.artefacts.get(step);
|
|
1426
1461
|
if (!artefact) return false;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"id": "agdf",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.4",
|
|
5
5
|
"displayName": "AI Governance & Delivery Framework",
|
|
6
6
|
"developerName": "AI-native Governance & Delivery Framework",
|
|
7
7
|
"description": "Codex-first workflow skills for gated, auditable AI-assisted software delivery.",
|
package/package.json
CHANGED