@williambeto/ai-workflow 2.4.8 → 2.6.3

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 (122) hide show
  1. package/bin/ai-workflow.d.ts +3 -0
  2. package/bin/ai-workflow.js +2669 -1
  3. package/bin/ai-workflow.js.map +1 -0
  4. package/chunk-2AOV2ATY.js +749 -0
  5. package/chunk-5WRI5ZAA.js +31 -0
  6. package/chunk-6EMG6FAO.js +734 -0
  7. package/chunk-UHLZX2EG.js +1827 -0
  8. package/core/index.d.ts +440 -0
  9. package/core/index.js +32 -0
  10. package/core/index.js.map +1 -0
  11. package/dist-assets/AGENTS.md +23 -6
  12. package/dist-assets/agents/atlas.md +8 -8
  13. package/dist-assets/agents/nexus.md +4 -4
  14. package/dist-assets/agents/orion.md +1 -1
  15. package/dist-assets/agents/phoenix.md +1 -1
  16. package/dist-assets/agents/sage.md +1 -1
  17. package/dist-assets/commands/implement.md +1 -1
  18. package/dist-assets/docs/QUICKSTART.md +8 -8
  19. package/dist-assets/docs/cli-reference.md +7 -7
  20. package/dist-assets/docs/compatibility/provider-usage.md +1 -9
  21. package/dist-assets/docs/compatibility/runtime-matrix.md +5 -6
  22. package/dist-assets/docs/consumer-onboarding.md +2 -2
  23. package/dist-assets/docs/design-patterns-policy.md +1 -1
  24. package/dist-assets/docs/full-documentation.md +0 -2
  25. package/dist-assets/docs/npm-consumer-quickstart.md +70 -109
  26. package/dist-assets/docs/policies/01-BRANCH_GATE.md +1 -1
  27. package/dist-assets/docs/policies/06-FINAL_EVIDENCE_CONTRACT.md +2 -2
  28. package/dist-assets/docs/policies/08-PRODUCT_TRUTHFULNESS_AND_PROJECT_DOCS.md +1 -1
  29. package/dist-assets/docs/policies/10-BEHAVIORAL_CONTRACT_HARDENING.md +1 -1
  30. package/dist-assets/docs/policies/ORCHESTRATION_PROTOCOL.md +8 -9
  31. package/dist-assets/docs/policies/PROCEDURE_DELIVERY_ARTIFACTS.md +4 -10
  32. package/dist-assets/docs/policies/SKILLS_COMMON_GOVERNANCE.md +1 -1
  33. package/dist-assets/docs/profiles/README.md +2 -2
  34. package/dist-assets/docs/specs/runtime-operational-contract.md +12 -12
  35. package/dist-assets/docs/troubleshooting-guide.md +2 -2
  36. package/dist-assets/docs/visual-validation-guide.md +65 -3
  37. package/dist-assets/prompts/01-create-requirement.md +2 -2
  38. package/dist-assets/prompts/02-create-spec.md +2 -2
  39. package/dist-assets/prompts/03-create-tech-plan.md +4 -4
  40. package/dist-assets/prompts/04-breakdown-prs.md +4 -4
  41. package/dist-assets/prompts/05-implement-pr.md +5 -5
  42. package/dist-assets/prompts/06-review-and-fix.md +3 -3
  43. package/dist-assets/prompts/07-apply-design.md +2 -2
  44. package/dist-assets/prompts/08-validate.md +5 -5
  45. package/dist-assets/prompts/09-deploy.md +5 -5
  46. package/dist-assets/prompts/commands/implement.md +1 -1
  47. package/dist-assets/prompts/commands/tech-plan.md +2 -2
  48. package/dist-assets/prompts/commands/validate.md +2 -2
  49. package/dist-assets/runbooks/deploy-checklist.md +5 -5
  50. package/dist-assets/runbooks/how-to-use-skills.md +10 -0
  51. package/dist-assets/runbooks/validation-checklist.md +5 -5
  52. package/dist-assets/schemas/evidence.schema.json +109 -0
  53. package/dist-assets/templates/ANTIGRAVITY.md.template +7 -5
  54. package/dist-assets/templates/CLAUDE.md.template +7 -5
  55. package/dist-assets/templates/CODEX.md.template +7 -5
  56. package/evidence-validator-76ZQQYDU.js +6661 -0
  57. package/package.json +7 -65
  58. package/{src/core/workspace/read-only-workspace.js → read-only-workspace-PZBE7KAX.js} +14 -31
  59. package/{src/commands/validate.js → validate-Q2NLLQ5G.js} +30 -22
  60. package/AGENTS.md +0 -34
  61. package/CHANGELOG.md +0 -237
  62. package/LICENSE +0 -21
  63. package/PUBLISH_MANIFEST.json +0 -34
  64. package/README.md +0 -129
  65. package/dist-assets/runbooks/use-linear-for-operational-planning.md +0 -45
  66. package/dist-assets/runbooks/use-napkin-project-memory.md +0 -33
  67. package/dist-assets/templates/.geminiignore.template +0 -8
  68. package/dist-assets/templates/GEMINI.md.template +0 -20
  69. package/docs/compatibility/provider-usage.md +0 -46
  70. package/docs/compatibility/runtime-matrix.md +0 -31
  71. package/docs/getting-started/DESKTOP_PROMPT.md +0 -52
  72. package/docs/getting-started/quickstart.md +0 -117
  73. package/docs/getting-started/troubleshooting.md +0 -123
  74. package/docs/getting-started/upgrading-to-v2.md +0 -62
  75. package/read_only_safety_verification.md +0 -48
  76. package/src/adapters/index.js +0 -4
  77. package/src/adapters/platforms/antigravity.js +0 -382
  78. package/src/adapters/platforms/claude.js +0 -126
  79. package/src/adapters/platforms/codex.js +0 -113
  80. package/src/adapters/platforms/gemini.js +0 -245
  81. package/src/cli.js +0 -155
  82. package/src/commands/clean.js +0 -106
  83. package/src/commands/collect-evidence.js +0 -25
  84. package/src/commands/doctor.js +0 -202
  85. package/src/commands/execute.js +0 -382
  86. package/src/commands/init.js +0 -359
  87. package/src/commands/run.js +0 -112
  88. package/src/core/backup.js +0 -65
  89. package/src/core/completion-contract.js +0 -35
  90. package/src/core/delegation-controller.js +0 -193
  91. package/src/core/evidence/evidence-ledger.js +0 -98
  92. package/src/core/execution-planner.js +0 -62
  93. package/src/core/filesystem.js +0 -141
  94. package/src/core/finalization/finalizer.js +0 -165
  95. package/src/core/finalization/workspace-snapshot.js +0 -110
  96. package/src/core/gates/branch-gate.js +0 -134
  97. package/src/core/gates/merge-gate.js +0 -74
  98. package/src/core/handoff/handoff-engine.js +0 -104
  99. package/src/core/healing/cli-remediation-executor.js +0 -153
  100. package/src/core/healing/healer-engine.js +0 -212
  101. package/src/core/healing/runtime-remediation-executor.js +0 -136
  102. package/src/core/identity.js +0 -43
  103. package/src/core/install-plan.js +0 -34
  104. package/src/core/opencode-merge.js +0 -150
  105. package/src/core/package-assets.js +0 -141
  106. package/src/core/request-classifier.js +0 -73
  107. package/src/core/request-router.js +0 -289
  108. package/src/core/runtime/opencode-adapter.js +0 -202
  109. package/src/core/sdd/validator.js +0 -67
  110. package/src/core/statuses.js +0 -29
  111. package/src/core/symlink-layout.js +0 -93
  112. package/src/core/templates.js +0 -229
  113. package/src/core/validation/artifact-fidelity-gate.js +0 -445
  114. package/src/core/validation/canonical-finalization.js +0 -43
  115. package/src/core/validation/delivery-decision-engine.js +0 -344
  116. package/src/core/validation/evidence-collector.js +0 -245
  117. package/src/core/validation/quality-guard.js +0 -251
  118. package/src/core/validation/stack-detector.js +0 -65
  119. package/src/core/validation/validation-planner.js +0 -134
  120. package/src/core/validation/visual-verifier.js +0 -175
  121. package/src/core/workflow-profiles.js +0 -107
  122. package/src/core/workflow-state-machine.js +0 -46
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@williambeto/ai-workflow",
3
- "version": "2.4.8",
3
+ "version": "2.6.3",
4
4
  "description": "AI Workflow Kit — OpenCode-first software delivery workflow with agents, commands, skills, validation, and evidence",
5
5
  "license": "MIT",
6
6
  "author": "José Willams",
@@ -34,70 +34,12 @@
34
34
  },
35
35
  "files": [
36
36
  "bin",
37
- "src",
37
+ "core",
38
38
  "dist-assets",
39
- "PUBLISH_MANIFEST.json",
39
+ "*.js",
40
+ "package.json",
40
41
  "README.md",
41
42
  "LICENSE",
42
- "CHANGELOG.md",
43
- "AGENTS.md",
44
- "read_only_safety_verification.md",
45
- "docs/getting-started",
46
- "docs/compatibility"
47
- ],
48
- "scripts": {
49
- "build": "node internal/validate/build-publish.mjs",
50
- "validate": "node internal/validate/validate-all.mjs",
51
- "validate:json": "node internal/validate/validate-json.mjs",
52
- "validate:structure": "node internal/validate/validate-structure.mjs",
53
- "validate:refs": "node internal/validate/validate-refs.mjs",
54
- "validate:artifact-safety": "node internal/validate/validate-artifact-safety.mjs",
55
- "validate:links": "node internal/validate/validate-links.mjs",
56
- "validate:docs-consistency": "node internal/validate/validate-doc-consistency.mjs",
57
- "validate:workflow": "node internal/validate/validate-workflow.mjs",
58
- "validate:schemas": "node internal/validate/validate-schemas.mjs",
59
- "validate:skills": "node internal/validate/validate-skills.mjs",
60
- "validate:subagents": "node internal/validate/validate-subagents.mjs",
61
- "validate:commands": "node internal/validate/validate-commands.mjs",
62
- "validate:agents": "node internal/validate/validate-agents.mjs",
63
- "validate:policy-refs": "node internal/validate/validate-policy-refs.mjs",
64
- "validate:privacy-gate": "node internal/validate/validate-privacy-gate.mjs",
65
- "validate:ui-evidence": "node internal/validate/validate-ui-evidence-gate.mjs",
66
- "validate:delegation": "node internal/validate/validate-delegation.mjs",
67
- "validate:routing": "node internal/validate/validate-routing-consistency.mjs",
68
- "validate:cli-smoke": "node internal/validate/validate-cli-smoke.mjs",
69
- "validate:cli-docs": "node internal/validate/validate-cli-docs.mjs",
70
- "lint:md": "markdownlint \"**/*.md\"",
71
- "validate:registry": "node internal/validate/validate-registry-integrity.mjs",
72
- "clean:verify": "node -e \"const fs = require('fs'); fs.rmSync('dist', { recursive: true, force: true }); fs.readdirSync('.').filter(f => f.endsWith('.tgz')).forEach(f => fs.rmSync(f, { force: true }));\"",
73
- "test": "npm run test:unit",
74
- "test:unit": "vitest run tests/unit/",
75
- "test:watch": "vitest",
76
- "test:coverage": "vitest run --coverage",
77
- "test:e2e": "node tests/validate-e2e.mjs && vitest run tests/e2e/consumer-workflow.test.js",
78
- "test:e2e:runtime": "AI_WORKFLOW_RELEASE=1 vitest run tests/e2e/consumer-workflow.test.js -t \"Real OpenCode Smoke Test\"",
79
- "release:verify": "npm run clean:verify && npm test && npm run test:e2e && npm run validate && npm run pack:verify && npm run test:e2e:runtime",
80
- "pack:verify": "node tests/e2e/verify-packed-consumer.mjs",
81
- "pack:safe": "node internal/validate/pack-safe.mjs",
82
- "validate:behavioral-contracts": "node internal/validate/validate-behavioral-contracts.mjs",
83
- "validate:token-economy": "node internal/validate/validate-token-economy.mjs",
84
- "validate:upgrade": "node internal/validate/validate-upgrade-path.mjs",
85
- "validate:visual": "node internal/validate/validate-visual.mjs",
86
- "validate:release-readiness": "node internal/validate/validate-release-readiness.mjs"
87
- },
88
- "devDependencies": {
89
- "@playwright/test": "^1.60.0",
90
- "@semantic-release/changelog": "^6.0.3",
91
- "@semantic-release/git": "^10.0.1",
92
- "@semantic-release/github": "^12.0.8",
93
- "@semantic-release/npm": "^13.1.5",
94
- "@vitest/coverage-v8": "^4.1.7",
95
- "ajv": "^8.20.0",
96
- "ajv-formats": "^3.0.1",
97
- "axe-core": "^4.10.0",
98
- "markdownlint-cli": "^0.49.0",
99
- "playwright": "^1.60.0",
100
- "semantic-release": "^25.0.3",
101
- "vitest": "^4.1.7"
102
- }
103
- }
43
+ "CHANGELOG.md"
44
+ ]
45
+ }
@@ -1,8 +1,10 @@
1
- import fs from "node:fs/promises";
2
- import path from "node:path";
3
- import os from "node:os";
4
- import crypto from "node:crypto";
1
+ import "./chunk-5WRI5ZAA.js";
5
2
 
3
+ // src/core/workspace/read-only-workspace.ts
4
+ import fs from "fs/promises";
5
+ import path from "path";
6
+ import os from "os";
7
+ import crypto from "crypto";
6
8
  async function copyDirectory(src, dest) {
7
9
  const entries = await fs.readdir(src, { withFileTypes: true });
8
10
  for (const entry of entries) {
@@ -11,7 +13,6 @@ async function copyDirectory(src, dest) {
11
13
  }
12
14
  const srcPath = path.join(src, entry.name);
13
15
  const destPath = path.join(dest, entry.name);
14
-
15
16
  if (entry.isDirectory()) {
16
17
  await fs.mkdir(destPath, { recursive: true });
17
18
  await copyDirectory(srcPath, destPath);
@@ -20,13 +21,11 @@ async function copyDirectory(src, dest) {
20
21
  }
21
22
  }
22
23
  }
23
-
24
24
  async function captureHashSnapshot(dir) {
25
25
  const snapshot = {};
26
26
  await scanDir(dir, dir, snapshot);
27
27
  return snapshot;
28
28
  }
29
-
30
29
  async function scanDir(baseDir, currentDir, snapshot) {
31
30
  const entries = await fs.readdir(currentDir, { withFileTypes: true });
32
31
  for (const entry of entries) {
@@ -35,7 +34,6 @@ async function scanDir(baseDir, currentDir, snapshot) {
35
34
  }
36
35
  const fullPath = path.join(currentDir, entry.name);
37
36
  const relPath = path.relative(baseDir, fullPath);
38
-
39
37
  if (entry.isDirectory()) {
40
38
  await scanDir(baseDir, fullPath, snapshot);
41
39
  } else if (entry.isFile()) {
@@ -44,24 +42,14 @@ async function scanDir(baseDir, currentDir, snapshot) {
44
42
  const hash = crypto.createHash("sha256").update(content).digest("hex");
45
43
  snapshot[relPath] = hash;
46
44
  } catch {
47
- // ignore
48
45
  }
49
46
  }
50
47
  }
51
48
  }
52
-
53
- /**
54
- * Runs a function inside a temporary copy of the workspace.
55
- * Mutating the workspace inside this temp directory will trigger a BLOCKED result.
56
- */
57
- export async function runInReadOnlyWorkspace(originalCwd, runFn) {
49
+ async function runInReadOnlyWorkspace(originalCwd, runFn) {
58
50
  const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), "opencode-ro-"));
59
-
60
51
  try {
61
- // 1. Copy repository files recursively (excluding git/node_modules/tmp)
62
52
  await copyDirectory(originalCwd, tempDir);
63
-
64
- // 2. Write the required opencode.jsonc permission config file
65
53
  const opencodeConfig = {
66
54
  permission: {
67
55
  edit: "deny",
@@ -80,16 +68,9 @@ export async function runInReadOnlyWorkspace(originalCwd, runFn) {
80
68
  path.join(tempDir, "opencode.jsonc"),
81
69
  JSON.stringify(opencodeConfig, null, 2)
82
70
  );
83
-
84
- // 3. Capture initial file hash snapshot
85
71
  const snapshotBefore = await captureHashSnapshot(tempDir);
86
-
87
- // 4. Execute the callback function inside the temp directory
88
72
  const runResult = await runFn(tempDir);
89
-
90
- // 5. Capture post-run snapshot and verify no file mutations occurred
91
73
  const snapshotAfter = await captureHashSnapshot(tempDir);
92
-
93
74
  const mutated = [];
94
75
  for (const [file, hash] of Object.entries(snapshotAfter)) {
95
76
  if (snapshotBefore[file] !== hash) {
@@ -97,11 +78,10 @@ export async function runInReadOnlyWorkspace(originalCwd, runFn) {
97
78
  }
98
79
  }
99
80
  for (const file of Object.keys(snapshotBefore)) {
100
- if (snapshotAfter[file] === undefined) {
81
+ if (snapshotAfter[file] === void 0) {
101
82
  mutated.push(file);
102
83
  }
103
84
  }
104
-
105
85
  if (mutated.length > 0) {
106
86
  return {
107
87
  success: false,
@@ -110,10 +90,13 @@ export async function runInReadOnlyWorkspace(originalCwd, runFn) {
110
90
  eventCount: runResult.eventCount || 0
111
91
  };
112
92
  }
113
-
114
93
  return runResult;
115
94
  } finally {
116
- // 6. Delete the temporary workspace copy
117
- await fs.rm(tempDir, { recursive: true, force: true }).catch(() => {});
95
+ await fs.rm(tempDir, { recursive: true, force: true }).catch(() => {
96
+ });
118
97
  }
119
98
  }
99
+ export {
100
+ runInReadOnlyWorkspace
101
+ };
102
+ //# sourceMappingURL=read-only-workspace-PZBE7KAX.js.map
@@ -1,32 +1,42 @@
1
- import { EvidenceCollector } from "../core/validation/evidence-collector.js";
2
- import { QualityGuard } from "../core/validation/quality-guard.js";
3
- import { ValidationPlanner } from "../core/validation/validation-planner.js";
4
- import { VisualVerifier } from "../core/validation/visual-verifier.js";
5
- import fs from "node:fs/promises";
6
- import path from "node:path";
1
+ import {
2
+ EvidenceCollector,
3
+ QualityGuard,
4
+ ValidationPlanner,
5
+ VisualVerifier
6
+ } from "./chunk-6EMG6FAO.js";
7
+ import "./chunk-2AOV2ATY.js";
8
+ import "./chunk-5WRI5ZAA.js";
7
9
 
8
- export async function runValidate({ cwd = process.cwd(), exitOnError = true, taskSlug = null, a11y = false, visualDist = null, port = 8080 }) {
10
+ // src/cli/commands/validate.ts
11
+ import fs from "fs/promises";
12
+ import path from "path";
13
+ async function runValidate({
14
+ cwd = process.cwd(),
15
+ exitOnError = true,
16
+ taskSlug = null,
17
+ a11y = false,
18
+ visualDist = null,
19
+ port = 8080
20
+ }) {
9
21
  console.log("--- Running Validation ---");
10
- const qualityGuard = new QualityGuard({ cwd, taskSlug, mode: "standard" });
22
+ const qualityGuard = new QualityGuard({ cwd, taskSlug, evidencePolicy: "optional", riskLevel: "medium" });
11
23
  const planner = new ValidationPlanner({ cwd, qualityGuard });
12
24
  const tasks = await planner.plan("standard");
13
-
14
- const collector = new EvidenceCollector({ cwd, timeout: 60000, taskSlug, mode: "standard" });
25
+ const collector = new EvidenceCollector({ cwd, timeout: 6e4, taskSlug, evidencePolicy: "optional" });
15
26
  const results = [];
16
-
17
27
  for (const task of tasks) {
18
28
  console.log(`Running validation task: ${task.name}...`);
19
29
  const res = collector.runTask(task);
20
30
  results.push(res);
21
31
  console.log(`- Status: ${res.status} (${res.summary})`);
22
32
  }
23
-
24
33
  let a11yResult = null;
25
34
  if (a11y) {
26
35
  if (!visualDist) {
27
36
  throw new Error("Accessibility audit (--a11y) requires a target build directory specified via --visual-dist=<path>.");
28
37
  }
29
- console.log(`\n--- Running Accessibility Audit ---`);
38
+ console.log(`
39
+ --- Running Accessibility Audit ---`);
30
40
  console.log(`Serving ${visualDist} on port ${port}...`);
31
41
  try {
32
42
  const verifier = new VisualVerifier({ cwd, visualDist, port });
@@ -41,21 +51,17 @@ export async function runValidate({ cwd = process.cwd(), exitOnError = true, tas
41
51
  throw err;
42
52
  }
43
53
  }
44
-
45
- // Load future configuration if present
46
54
  let config = {};
47
55
  try {
48
56
  const configContent = await fs.readFile(path.join(cwd, "ai-workflow.config.json"), "utf8");
49
57
  config = JSON.parse(configContent);
50
- } catch {}
51
-
58
+ } catch {
59
+ }
52
60
  const hasFailure = results.some((r) => ["FAIL", "BLOCKED", "FAIL_QUALITY_GATE"].includes(r.status));
53
-
54
61
  let hasA11yFailure = false;
55
62
  if (a11yResult) {
56
- const criticalIsBlocker = true; // Critical violations are always blockers
63
+ const criticalIsBlocker = true;
57
64
  const seriousIsBlocker = config.a11y?.seriousAsBlocker === true;
58
-
59
65
  if (criticalIsBlocker && a11yResult.critical.length > 0) {
60
66
  hasA11yFailure = true;
61
67
  console.error(`Accessibility FAILED: ${a11yResult.critical.length} critical accessibility violations detected.`);
@@ -69,13 +75,15 @@ export async function runValidate({ cwd = process.cwd(), exitOnError = true, tas
69
75
  }
70
76
  }
71
77
  }
72
-
73
78
  if (hasFailure || hasA11yFailure) {
74
79
  console.log("\nValidation FAILED.");
75
80
  if (exitOnError) process.exit(1);
76
81
  return { passed: false, results, a11yResult };
77
82
  }
78
-
79
83
  console.log("\nValidation PASSED.");
80
84
  return { passed: true, results, a11yResult };
81
85
  }
86
+ export {
87
+ runValidate
88
+ };
89
+ //# sourceMappingURL=validate-Q2NLLQ5G.js.map
package/AGENTS.md DELETED
@@ -1,34 +0,0 @@
1
- # AI Workflow Kit contributor contract
2
-
3
- ## Purpose
4
-
5
- Deliver useful software through proportionate workflow, minimum diff, observed validation, and concise evidence.
6
-
7
- ## Non-negotiable safety
8
-
9
- - Never implement on `main` or `master`.
10
- - Preserve unrelated dirty work.
11
- - Run existing relevant validation commands.
12
- - Never report success after failed or unavailable required validation.
13
- - Bound remediation and stop when no progress is made.
14
- - Always await explicit conversational authorization from the human user in the chat before executing any codebase modification, Git commit, tagging, or remote push. Automated system approval hooks (e.g., artifact reviews) do not bypass this human-in-the-loop requirement.
15
- - Remote push is only permitted on non-protected feature/maintenance branches (e.g. feat/*, fix/*, chore/*, docs/*) with explicit conversational authorization, and is strictly prohibited on protected branches like main or master.
16
-
17
- ## Routing & Delegation
18
-
19
- Atlas routes. Nexus owns discovery, requirements, and spec authoring. Orion owns planning, PR sequencing, and release strategy. Astra implements substantial scoped work. Sage independently validates when risk or full mode justifies separation. Phoenix performs bounded remediation. Delegation must improve the result; do not create agent theatre or claim handoffs that did not occur.
20
-
21
- ## Modes
22
-
23
- - quick: small change, targeted validation, short summary;
24
- - standard: scoped feature, relevant validation, optional delegation;
25
- - full: formal planning, specialist implementation, independent validation, persisted evidence.
26
-
27
- ## Evidence
28
-
29
- Quick and standard work require only branch, changed areas, commands/results, and limitations in the handoff. Full/release/audit/security work may persist machine-generated evidence.
30
-
31
- ## Core Concept
32
-
33
- AI Workflow is an npm CLI that installs agents, commands, skills, policies and templates into your repository.
34
- It guides coding agents from request to implementation, validation and evidence. AI Workflow Kit preserves workflow integrity so coding agents cannot skip from request to code to success without an explicit implementation path, proportional validation, and final evidence.
package/CHANGELOG.md DELETED
@@ -1,237 +0,0 @@
1
- ## [2.4.7] - 2026-06-27
2
-
3
- ### Added
4
- - Integrated `@vitest/coverage-v8` to compute code coverage, establishing a strict **80% minimum threshold** for lines, functions, branches, and statements in `vitest.config.js`.
5
- - Added the `npm run test:coverage` script in `package.json` for easy local and CI coverage reporting.
6
- - Created the official community Code of Conduct template at `.github/CODE_OF_CONDUCT.md` with maintainer contact method.
7
- - Excluded the `coverage/` directory from git tracking in `.gitignore`.
8
-
9
- ### Fixed
10
- - Mitigated shell injection risks in the `cli-remediation-executor.js` by removing the insecure `shell:true` parameter and spawning native subprocess commands directly via platform detection (`npm` on POSIX and `npm.cmd` on Windows).
11
- - Fixed 3 failing unit tests in `visual-verifier.test.js` to align with the CSS variables flexibilization threshold (>200 chars) introduced in v2.4.6.
12
- - Documented `ai-workflow clean` limitations regarding the absolute deletion of custom `opencode.jsonc` configs in `cli-reference.md` and `troubleshooting.md`.
13
-
14
- ### Changed
15
- - Bumped and updated development dependencies (dev-dependencies group) to their latest stable versions for security and build stability.
16
-
17
- ## [2.4.6] - 2026-06-25
18
-
19
- ### Fixed
20
- - Flexibilized Design System CSS variables check in `ArtifactFidelityGate` to only enforce the validation when CSS rules volume is substantial (>200 characters), preventing false-positive blocks on tiny or simple style additions.
21
-
22
- ## [2.4.5] - 2026-06-24
23
-
24
- ### Changed
25
- - Refined Design System token validation to support both CSS custom property declarations and usages via `var()`, reducing false-positive quality gate blocks on minor style adjustments.
26
- - Flexibilized `git push` policy to allow remote pushes to non-protected feature/maintenance branches upon explicit human authorization in the chat, keeping `main` and `master` branches strictly protected.
27
-
28
- ## [2.4.4] - 2026-06-24
29
-
30
- ### Added
31
- - Added `clean` CLI command (`aw clean`) to cleanly de-initialize and remove AI Workflow files and symlinks from a project.
32
- - Translated all E2E test titles and comments in the codebase to English for consistent localization.
33
-
34
- ## [2.4.3] - 2026-06-24
35
-
36
- ### Added
37
- - Hardened agent prompt contract rules and safety gates for all 6 agents (Atlas, Nexus, Orion, Astra, Sage, Phoenix).
38
- - Hardened workflow procedures and validation checks for core commands (validate, release, deploy, implement, spec-create).
39
- - Enhanced all 19 default skills with stricter constraint and procedure parameters.
40
-
41
- ## [2.4.2] - 2026-06-21
42
-
43
- ### Added
44
- - Registered `Frontend-Design-System-Specialist` subagent in `opencode.jsonc` templates and configurations.
45
- - Updated `Astra` agent prompt contract to explicitly load `frontend-design-system` skill when active.
46
-
47
- ## [2.4.1] - 2026-06-21
48
-
49
- ### Fixed
50
- - Hardened visual and accessibility quality gates.
51
- - Enhanced `ArtifactFidelityGate` to check all skill folder path variations for `frontend-design-system`.
52
- - Documented Playwright, browser, and Axe-core preconditions in README and quickstart documentation.
53
- - Improved validation resiliency by warning instead of crashing when browser binaries are missing.
54
-
55
- ## [2.4.0] - 2026-06-20
56
-
57
- ### Added
58
- - Native Visual Evidence capture in `collect-evidence` via `--visual-dist` and `--port` parameters, launching a static loopback server and capturing Chromium screenshots using Playwright.
59
- - CSS/HTML Design System Gate validation in `ArtifactFidelityGate` that automatically runs when the `frontend-design-system` skill is loaded in the repository, checking for CSS custom properties, inline style density, CDN scripts, and semantic HTML layout tags.
60
- - Native accessibility auditing command `npx aw validate --a11y` via Axe-core running inside Playwright, blocking critical violations and persisting reports in `.evidence/a11y/report.json`.
61
- - Standard `frontend-design-system` skill (`.agents/skills/frontend-design-system/SKILL.md`) to guide Astra and other agents through visual hierarchy, spacing grids, theme palettes, accessible contrast, and output rules.
62
- - Automated tests covering static loopback servers, Playwright screenshots, Axe-core checks, inline style gates, CSS tokens, and HTML semantics.
63
-
64
- ## [2.3.7] - 2026-06-20
65
-
66
- ### Changed
67
- - Bumped version to 2.3.7.
68
-
69
- ## [2.3.6] - 2026-06-20
70
-
71
- ### Added
72
- - Request-aware delivery decision and artifact fidelity gates (GREEN phase) to prevent false-positive completions in frontend/backend stack tasks.
73
- - Hardened check for blocking delivery decisions in `ArtifactFidelityGate` and `Finalizer`.
74
- - False-positive regression tests and release readiness audit documentation.
75
-
76
- ### Fixed
77
- - Aligned WordPress root detection logic between `DeliveryDecisionEngine` and `ArtifactFidelityGate`.
78
- - Corrected architecture and design patterns policy relative paths in the technical plan prompt.
79
- - Normalized approved release decision string to `RELEASE_OR_DEPLOY_APPROVED`.
80
-
81
- ## [2.3.5] - 2026-06-20
82
-
83
- ### Fixed
84
- - Corrected the governance policy relative path header in all standard skill Markdown files.
85
-
86
- ## [2.3.4] - 2026-06-20
87
-
88
- ### Fixed
89
- - Corrected the mapping and resolution path of policies under `opencode/docs`.
90
-
91
- ## [2.3.3] - 2026-06-20
92
-
93
- ### Added
94
- - First phase implementation of the Delivery Decision Engine and Artifact Fidelity Gate checking for correct technology stacks.
95
- - Hardened PromptContracts and validation scripts for stack-aware quality checking.
96
-
97
- ## [2.3.2] - 2026-06-19
98
-
99
-
100
- ### Documentation
101
- - Clarified first-time usage with `npx @williambeto/ai-workflow init`.
102
- - Clarified local installed-package alias usage with `npx aw init`, `npx aw doctor`, and `npx aw run`.
103
-
104
- ### Notes
105
- - No CLI behavior changed.
106
- - No runtime behavior changed.
107
-
108
- ## [2.3.1] - 2026-06-18
109
-
110
- ### Fixed
111
- - Enforced runtime actor selection for explicit actor routing.
112
- - Prevented silent fallback to default runtime behavior when a selected specialized actor cannot be applied.
113
- - Blocked specialized actor execution when the runtime does not support `--agent`.
114
- - Added truthful ledger evidence for requested actor, selected actor, runtime requested actor and runtime applied actor.
115
- - Hardened routing consistency validation across agents, runtime adapter and delegation ledger.
116
-
117
- ### Added
118
- - Unit tests covering OpenCode runtime actor enforcement and fail-closed checks.
119
- - E2E coverage for explicit actor routing, blocked fallbacks and default non-specialized execution.
120
- - Updated routing consistency validation to catch unsupported actor execution returning success.
121
-
122
- ### Release
123
- - Prepared locally only.
124
- - Not published to npm.
125
- - No git tag created.
126
- - No remote push performed.
127
-
128
- ## [2.3.0] - 2026-06-16
129
-
130
- ### Added
131
- - Isolated read-only workspace runner to prevent execution modifications from altering the original repository.
132
- - Sage validation agent execution in full/deep task mode, logging events to the ledger and handling revalidation.
133
- - Real OpenCode smoke test integration inside the `release:verify` suite.
134
- - Scenario 17 in E2E tests verifying the complete multi-agent coordination loop (`Astra -> Sage -> Phoenix -> Sage`).
135
-
136
- ### Fixed
137
- - Sequential state transitions for read-only runs (`IMPLEMENTING -> IMPLEMENTED -> VALIDATING -> COMPLETED`).
138
- - Snapshot comparison logic to correctly target `.snapshot.files` and compare `.sha256` properties.
139
- - Bypassed physical writing of ledger histories and handoff markdown files during read-only executions.
140
- - Injected mock OpenCode environment configuration inside `verify-packed-consumer.mjs` for autonomous sandbox runs.
141
-
142
- ## [2.0.5] - 2026-06-08
143
-
144
- ### Fixed
145
-
146
- - Locked standard/full Atlas completion behind current-task Sage, Evidence Collector, and QualityGuard execution.
147
- - Rejected direct Atlas `PASS`, user-deferred `/validate`, self-validation, and missing executable finalizer paths.
148
- - Added canonical cross-field validation for branch evidence, owners, artifacts, truthfulness, collector/final status, and Phoenix/Sage consistency.
149
- - Strengthened fictitious-product claim detection for unsupported market superlatives, pricing, SLA/support, API, batch, and export capabilities.
150
- - Added regression tests for runtime completion lock and internally inconsistent canonical results.
151
-
152
- ## [2.0.3] - 2026-06-08
153
-
154
- ### Added
155
-
156
- - Lightweight workflow profiles separating execution mode from domain quality guidance.
157
- - Deterministic profile routing for frontend product, frontend utility, backend API, refactor, documentation, and security review work.
158
- - Objective owner-completion contract with one bounded resume before `BLOCKED`.
159
- - Consumer workflow profile documentation.
160
-
161
- ### Changed
162
-
163
- - Visual validation now uses objective rendered checks instead of subjective labels or benchmark comparison.
164
- - Frontend product and utility profiles load both frontend and UI/UX skills without imposing a fixed SaaS page template.
165
- - Product Truthfulness accepts clear page-level conceptual labels for non-authoritative commercial concepts while keeping official/live/security/SLA claims strict.
166
- - Atlas handoff guidance is shorter and outcome-first.
167
-
168
- # Changelog
169
-
170
- ## [2.0.4] - 2026-06-08
171
-
172
- ### Fixed
173
-
174
- - Removed circular finalization evidence by deriving canonical results from executed policy checks and persisting them in `EVIDENCE.json`.
175
- - Enforced all canonical standard/full final response fields from one machine-readable contract.
176
- - Persisted and rendered delegation owners, loaded skills, delivery artifacts, Sage revalidation, Evidence Collector, QualityGuard, Product Truthfulness, finalizer, and terminal status.
177
- - Required structured TypeScript waivers with an explicit source and concrete constraint.
178
- - Added regression coverage for omitted fields, direct finalizer bypass, remediation without Sage revalidation, and canonical status spelling.
179
-
180
-
181
- ## 2.0.2
182
-
183
- ### Fixed
184
-
185
- - Enforced mode-specific final delivery artifacts so `standard` cannot pass with `delivery-summary.md`.
186
- - Added mandatory finalization evidence for collector, QualityGuard, Product Truthfulness, delegation, and finalizer identity.
187
- - Prevented `PASS` when canonical finalization fields are missing or inconsistent.
188
- - Added direct tests for standard artifact mismatch and finalization evidence.
189
- - Kept bounded remediation responsible for correcting final-gate failures before promotion.
190
-
191
- ## 2.0.1
192
-
193
- ### Fixed
194
-
195
- - Added bounded, progress-aware remediation for recoverable quality and delegation gates.
196
- - Prevented unresolved gate failures from being downgraded to `PASS_WITH_NOTES`.
197
- - Added hard remediation limits by execution mode and blocking on repeated/no-progress findings.
198
- - Synchronized the root evidence contract with the canonical distributed contract.
199
- - Added direct coverage for implementation documentation and remediation lifecycle behavior.
200
-
201
- ## 2.0.0
202
-
203
- ### Added
204
-
205
- - OpenCode-first workflow with six primary ownership roles.
206
- - Proportional `quick`, `standard`, and `full` delivery modes.
207
- - Persisted delivery artifacts and executable evidence collection.
208
- - Branch recovery, quality gates, delegation statuses, Product Truthfulness, and safe packaging.
209
- - TypeScript default for new frontend applications unless explicitly waived.
210
- - Consumer quickstart, runtime compatibility guidance, and v2 upgrade documentation.
211
- - Optional Codex, Claude Code, and Gemini adapter assets.
212
-
213
- ### Changed
214
-
215
- - Public version identity is now aligned with the npm upgrade path from `1.x` to `2.0.0`.
216
- - Active documentation describes only the current 2.0 product and supported migration path.
217
- - Repository-maintenance paths are separated from consumer-facing paths.
218
- - The initial `2.0.0` rollout uses the npm `next` dist-tag without moving `latest`.
219
-
220
- ### Removed
221
-
222
- - Obsolete pre-2.0 runtime guidance, taxonomies, aliases, package paths, and intermediate release-candidate documentation.
223
-
224
- ## Previous public releases
225
-
226
- The previous npm line ends at `1.19.1`. Detailed historical changes remain available in Git history and GitHub Releases.
227
-
228
- ## 2.1.0
229
-
230
- ### Changed
231
-
232
- - Recovered the original product direction: proportionate workflows, useful software, and concise evidence.
233
- - Kept protected-branch enforcement, required validation execution, bounded remediation, and false-success prevention as non-negotiable guardrails.
234
- - Removed mandatory canonical response fields, owner JSON, fixed delivery filenames, and persisted evidence from quick/standard work.
235
- - Simplified Atlas to route and coordinate without forcing multi-agent ceremony.
236
- - Simplified QualityGuard to objective branch, validation, documentation, UI-evidence, and full-mode persistence checks.
237
- - Replaced keyword-driven Product Truthfulness enforcement with semantic guidance.
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 AI Workflow Kit contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,34 +0,0 @@
1
- {
2
- "name": "ai-workflow-publish-manifest",
3
- "version": "1.0.0",
4
- "layers": {
5
- "core": [
6
- "bin/**",
7
- "src/**",
8
- "package.json",
9
- "opencode.jsonc"
10
- ],
11
- "assets": [
12
- "dist-assets/skills/**",
13
- "dist-assets/agents/**",
14
- "dist-assets/commands/**",
15
- "dist-assets/prompts/**",
16
- "dist-assets/templates/**",
17
- "dist-assets/schemas/**",
18
- "dist-assets/runbooks/**",
19
- "dist-assets/harness/**",
20
- "dist-assets/docs/**",
21
- "dist-assets/examples/**",
22
- "dist-assets/AGENTS.md"
23
- ]
24
- },
25
- "exclude": [
26
- "internal/**",
27
- "**/tests/**",
28
- "**/evidence/**",
29
- "**/*.original.md",
30
- ".git/**",
31
- ".ai-workflow/**",
32
- "node_modules/**"
33
- ]
34
- }