@amsterdamdatalabs/adl-agent-control-linux-x64 0.1.35 → 0.1.46

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 (128) hide show
  1. package/bin/adl +2 -2
  2. package/bin/reconcile +3 -11
  3. package/bin/setup +15 -15
  4. package/package.json +1 -1
  5. package/packages/agent-hooks/deploy-profile.json +1 -1
  6. package/packages/agent-hooks/package.json +1 -1
  7. package/packages/agent-hooks/src/main.ts +23 -2
  8. package/packages/agent-hooks/src/pre-tool-use/handler.ts +2 -2
  9. package/packages/agent-hooks/src/rules/impl/adl-build-run-role.ts +116 -0
  10. package/packages/agent-hooks/src/rules/impl/adl-git-user-override-block.ts +159 -0
  11. package/packages/agent-hooks/src/rules/impl/adl-mcp-cli.ts +22 -12
  12. package/packages/agent-hooks/src/rules/impl/adl-pr-complete-pending.ts +9 -9
  13. package/packages/agent-hooks/src/rules/impl/adl-pr-role.ts +6 -5
  14. package/packages/agent-hooks/src/rules/impl/adl-run-required.ts +11 -5
  15. package/packages/agent-hooks/src/rules/impl/adl-workitem-role.ts +18 -5
  16. package/packages/agent-hooks/src/rules/impl/agent-tamper-protection.ts +30 -25
  17. package/packages/agent-hooks/src/rules/impl/git-core.ts +4 -8
  18. package/packages/agent-hooks/src/rules/impl/git-target.ts +5 -0
  19. package/packages/agent-hooks/src/rules/impl/mcp-tool.ts +4 -2
  20. package/packages/agent-hooks/src/rules/impl/tool-frontend.ts +230 -11
  21. package/packages/agent-hooks/src/rules/registry.ts +11 -2
  22. package/packages/agent-hooks/src/rules/shell/git-identity.ts +1 -1
  23. package/packages/agent-hooks/src/rules/shell/invocation.ts +14 -2
  24. package/packages/agent-hooks/src/rules/shell/protected-carriers.ts +10 -7
  25. package/packages/agent-settings/assets/TARUN-GLOBAL-AGENTS-INSTRUCTIONS.md +2 -2
  26. package/packages/agent-settings/package.json +1 -1
  27. package/packages/agent-settings/src/deploy/agents-deploy.ts +19 -1
  28. package/packages/agent-settings/src/deploy/index.ts +1 -0
  29. package/packages/agent-skills/assets/agent-search-tool-audit/SKILL.md +4 -6
  30. package/packages/agent-skills/assets/code-review/SKILL.md +84 -66
  31. package/packages/agent-skills/assets/diagnosing-bugs/SKILL.md +23 -2
  32. package/packages/agent-skills/assets/diagnosing-bugs/references/FEEDBACK-LOOP-TACTICS.md +1 -1
  33. package/packages/agent-skills/assets/explore-codebase/SKILL.md +3 -2
  34. package/packages/agent-skills/assets/finalize-feature/SKILL.md +63 -0
  35. package/packages/agent-skills/assets/fix-ci/SKILL.md +58 -0
  36. package/packages/agent-skills/assets/handoff/SKILL.md +1 -1
  37. package/packages/agent-skills/assets/implement-feature/SKILL.md +150 -0
  38. package/packages/agent-skills/assets/implement-feature/references/briefs.md +94 -0
  39. package/packages/agent-skills/assets/implement-item/SKILL.md +71 -0
  40. package/packages/agent-skills/assets/mechanics/SKILL.md +38 -0
  41. package/packages/agent-skills/assets/plan-feature/SKILL.md +141 -0
  42. package/packages/agent-skills/assets/prepare-promotion/SKILL.md +90 -0
  43. package/packages/agent-skills/assets/ralplan/SKILL.md +149 -0
  44. package/packages/agent-skills/assets/refactor-safely/SKILL.md +4 -3
  45. package/packages/agent-skills/assets/report-bug/SKILL.md +72 -0
  46. package/packages/agent-skills/assets/review-change/SKILL.md +82 -0
  47. package/packages/agent-skills/assets/review-plan/SKILL.md +124 -0
  48. package/packages/agent-skills/assets/triage-workitems/SKILL.md +99 -0
  49. package/packages/agent-skills/assets/ultragoal/SKILL.md +77 -0
  50. package/packages/agent-skills/assets/validate-design/SKILL.md +64 -0
  51. package/packages/agent-skills/assets/verify-item/SKILL.md +71 -0
  52. package/packages/agent-skills/assets/wayfinder/SKILL.md +1 -1
  53. package/packages/agent-skills/assets/workitems-process/SKILL.md +145 -0
  54. package/packages/agent-skills/assets/workitems-process/references/ado-and-git.md +227 -0
  55. package/packages/agent-skills/assets/workitems-process/references/evidence.md +74 -0
  56. package/packages/agent-skills/assets/workitems-process/references/workitem-states.md +92 -0
  57. package/packages/agent-skills/assets/write-feature/SKILL.md +94 -0
  58. package/packages/agent-skills/dist/deploy.d.ts +52 -0
  59. package/packages/agent-skills/dist/deploy.d.ts.map +1 -1
  60. package/packages/agent-skills/dist/deploy.js +218 -7
  61. package/packages/agent-skills/dist/deploy.js.map +1 -1
  62. package/packages/agent-skills/dist/index.d.ts +1 -1
  63. package/packages/agent-skills/dist/index.d.ts.map +1 -1
  64. package/packages/agent-skills/dist/index.js +1 -1
  65. package/packages/agent-skills/dist/index.js.map +1 -1
  66. package/packages/agent-skills/package.json +1 -1
  67. package/packages/agent-skills/src/deploy.ts +288 -6
  68. package/packages/agent-skills/src/index.ts +10 -1
  69. package/packages/azdo/README.md +13 -4
  70. package/packages/azdo/bunfig.toml +6 -0
  71. package/packages/azdo/package.json +1 -1
  72. package/packages/azdo/scripts/probe-ado-rules.ts +1 -1
  73. package/packages/azdo/src/activity-log.ts +118 -0
  74. package/packages/azdo/src/azdo-attachments.ts +109 -0
  75. package/packages/azdo/src/azdo-pl.ts +100 -3
  76. package/packages/azdo/src/azdo-pr.ts +376 -17
  77. package/packages/azdo/src/azdo-wit.ts +594 -34
  78. package/packages/azdo/src/cli.ts +119 -12
  79. package/packages/azdo/src/lib/client.ts +95 -17
  80. package/packages/azdo/src/lib/validate-pr-metadata.ts +14 -5
  81. package/packages/azdo/src/mcp-server.ts +121 -8
  82. package/packages/azdo/src/tool-dispatch.ts +107 -23
  83. package/packages/azdo/src/workflow-ladder.csv +125 -107
  84. package/packages/azdo/src/workflow-rules.ts +254 -97
  85. package/packages/fleet/src/install-adl-package.ts +4 -3
  86. package/packages/repo-controls/README.md +12 -4
  87. package/packages/repo-controls/assets/promote.ts +1 -0
  88. package/packages/repo-controls/assets/scaffold/docs/AGENTS.md +5 -5
  89. package/packages/repo-controls/assets/scaffold/plans/AGENTS.md +42 -13
  90. package/packages/repo-controls/assets/scaffold/root/CONTRIBUTING.md +5 -5
  91. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/closed_set/test_check.py +0 -11
  92. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/filename/test_check.py +4 -6
  93. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/ledger/test_check.py +15 -0
  94. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/docs-okf-profiles.yaml +1 -17
  95. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-profile-untyped/docs/research/no-type.md +1 -1
  96. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-profile-untyped/docs/research/typed-experiment.md +1 -1
  97. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-profile-untyped/docs/research/typed-research.md +1 -1
  98. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-research/docs/research/extra-key.md +1 -1
  99. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-research/docs/research/extra-keys.md +1 -1
  100. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-research/docs/research/missing-created.md +1 -1
  101. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-research/docs/research/missing-description.md +1 -1
  102. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-research/docs/research/missing-last-update.md +1 -1
  103. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-research/docs/research/missing-status.md +1 -1
  104. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-research/docs/research/missing-title.md +1 -1
  105. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-research/docs/research/optional-keys.md +1 -1
  106. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/fixtures/okf-research/docs/research/research-ok.md +1 -1
  107. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/docs/okf_profile/test_check.py +3 -22
  108. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/open_work_cap/check.py +39 -182
  109. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/open_work_cap/fixtures/open-work-cap-clean/plans/features/az601-clean/intent.md +17 -0
  110. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/open_work_cap/test_check.py +90 -321
  111. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plan_metadata.py +31 -5
  112. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/check.py +282 -54
  113. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-clean/plans/features/az347-test-coverage/design.md +35 -0
  114. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-clean/plans/features/az347-test-coverage/file-map-reference.md +19 -0
  115. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-clean/plans/features/az347-test-coverage/intent.md +25 -0
  116. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-clean/plans/features/az347-test-coverage/items/az351-restore-entrypoint.md +25 -0
  117. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-clean/plans/features/az347-test-coverage/requirements.md +44 -0
  118. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/fixtures/plans-layout-violation/plans/features/az347-test-coverage/requirements.md +44 -0
  119. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/checks/layout/plans_layout/test_check.py +646 -53
  120. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/cli.py +3 -3
  121. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/docs_shape.py +1 -12
  122. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/gate-registry.alt.yaml +1 -1
  123. package/packages/repo-controls/package/adl-compliance/src/adl_compliance/policy/gate-registry.yaml +1 -1
  124. package/packages/repo-controls/package.json +1 -1
  125. package/packages/repo-controls/src/config.ts +21 -2
  126. package/packages/repo-controls/src/doctor.ts +9 -14
  127. package/packages/repo-controls/src/findings-ratchet.ts +12 -0
  128. package/packages/repo-controls/src/hook.ts +61 -4
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { deploySkills, type DeploySkillsOptions, type DeploySkillsResult, type SkillConflict } from "./deploy.js";
1
+ export { deploySkills, type DeploySkillsOptions, type DeploySkillsResult, type SkillConflict, removeDeployedSkillFolders, type RemoveDeployedSkillFoldersOptions, type RemoveDeployedSkillFoldersResult, type SkillRefusal, } from "./deploy.js";
2
2
  export { doctorAssets, doctorDeployment, type DoctorAssetsResult, type DoctorDeploymentOptions, type DoctorResult, type DoctorIssue, } from "./doctor.js";
3
3
  export { formatSkillLine, listSkills, type ListSkillsOptions, type SkillListing, type SkillListingEntry, type SkillOwner } from "./list.js";
4
4
  export { manifestPathFor, MANIFEST_RELATIVE_PATH, readManifest, type SkillManifest } from "./manifest.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,WAAW,EACX,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/I,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,0BAA0B,EAC1B,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,WAAW,EACX,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/I,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { deploySkills } from "./deploy.js";
1
+ export { deploySkills, removeDeployedSkillFolders, } from "./deploy.js";
2
2
  export { doctorAssets, doctorDeployment, } from "./doctor.js";
3
3
  export { formatSkillLine, listSkills } from "./list.js";
4
4
  export { manifestPathFor, MANIFEST_RELATIVE_PATH, readManifest } from "./manifest.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyE,MAAM,aAAa,CAAC;AAClH,OAAO,EACL,YAAY,EACZ,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAsF,MAAM,WAAW,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,YAAY,EAAsB,MAAM,eAAe,CAAC;AAC1G,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,WAAW,EACX,cAAc,EAId,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAqD,MAAM,mBAAmB,CAAC;AAC/I,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,GAGpB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIZ,0BAA0B,GAI3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAsF,MAAM,WAAW,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,YAAY,EAAsB,MAAM,eAAe,CAAC;AAC1G,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,WAAW,EACX,cAAc,EAId,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAqD,MAAM,mBAAmB,CAAC;AAC/I,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,GAGpB,MAAM,iBAAiB,CAAC"}
@@ -15,7 +15,7 @@
15
15
  "scripts": {
16
16
  "build": "rm -rf dist && tsc -p tsconfig.build.json",
17
17
  "typecheck": "tsc -p tsconfig.json --noEmit",
18
- "test": "bun run typecheck && bun test --coverage"
18
+ "test": "bun run typecheck && bun test --isolate --coverage --timeout 30000"
19
19
  },
20
20
  "dependencies": {
21
21
  "@iarna/toml": "^2.2.5",
@@ -17,7 +17,9 @@
17
17
  * When `profile.legacyLock` names a lock the OLD repo-controls engine
18
18
  * left behind, a same-name folder it fully wrote (per legacy-lock.ts) is
19
19
  * taken over on sight rather than reported as a conflict — see
20
- * legacy-lock.ts for the exact ownership rule and lock rewrite.
20
+ * legacy-lock.ts for the exact ownership rule and lock rewrite. A legacy
21
+ * folder whose skill retired from assets/ is removed under the same
22
+ * ownership rule (never a hand-modified folder).
21
23
  *
22
24
  * Fails loud: assets/target validation, an invalid deploy profile, an
23
25
  * invalid adl-config.toml subset, or an unwritable target all throw. There
@@ -40,6 +42,16 @@ export interface DeploySkillsOptions {
40
42
  readonly profile?: DeployProfile;
41
43
  /** Computes the exact same written/unchanged/removed/conflicts/retiredRemovals result without writing anything (independent review, 2026-09-29, finding 6). */
42
44
  readonly dryRun?: boolean;
45
+ /**
46
+ * When set, deploy only the named surface (profile.surfaces[].name) —
47
+ * the deploy half of the per-surface knob (az567). Other surfaces are
48
+ * left untouched: their files are not written, their conflicts are not
49
+ * reported, their retired-folder cleanup does not run. The deploy
50
+ * profile's `retired` list is the closed set of "skill folders no
51
+ * surface reads any more"; for surface-prepare this list is also
52
+ * filtered to the active surfaces.
53
+ */
54
+ readonly surfaceFilter?: string;
43
55
  }
44
56
 
45
57
  export interface SkillConflict {
@@ -69,7 +81,7 @@ export interface DeploySkillsResult {
69
81
  * relative paths, same bytes, nothing extra. Such a folder carries no user
70
82
  * content, so deploy may adopt it (Tarun, 2026-10-01).
71
83
  */
72
- function folderIdenticalToAsset(skillDirAbs: string, assetDirAbs: string, sourceFiles: readonly string[]): boolean {
84
+ export function folderIdenticalToAsset(skillDirAbs: string, assetDirAbs: string, sourceFiles: readonly string[]): boolean {
73
85
  let targetFiles: readonly string[];
74
86
  try {
75
87
  targetFiles = walkFiles(skillDirAbs);
@@ -80,7 +92,7 @@ function folderIdenticalToAsset(skillDirAbs: string, assetDirAbs: string, source
80
92
  return sourceFiles.every((file) => Buffer.compare(readFileSync(join(skillDirAbs, file)), readFileSync(join(assetDirAbs, file))) === 0);
81
93
  }
82
94
 
83
- function removeEmptyParents(root: string, dir: string): void {
95
+ export function removeEmptyParents(root: string, dir: string): void {
84
96
  let current = dir;
85
97
  while (current !== root && current.startsWith(root)) {
86
98
  if (!existsSync(current)) {
@@ -93,6 +105,201 @@ function removeEmptyParents(root: string, dir: string): void {
93
105
  }
94
106
  }
95
107
 
108
+ // ---------------------------------------------------------------------------
109
+ // az696 — `adl skills uninstall`: the removal primitive.
110
+ //
111
+ // `removeDeployedSkillFolders` removes the skill folders a previous
112
+ // `deploySkills` wrote, in the same resolution order (assets/ as the
113
+ // source of truth, the deploy profile as the closed set of surfaces, the
114
+ // repo's `[assets.skills]` subset respected on input).
115
+ //
116
+ // The function is split out from `deploySkills` because the deployment
117
+ // hot path should never carry the removal logic. The two are
118
+ // intentionally NOT one function with a flag — deploy's return value
119
+ // (written/unchanged/removed/conflicts/adopted) and uninstall's return
120
+ // value (removed/absent/refused) carry different fields, and a single
121
+ // result type would force both callers to ignore the half they don't
122
+ // care about.
123
+ //
124
+ // Safety: the only paths this function will remove are exactly the paths
125
+ // recorded in the deploy manifest. Anything else in the target repo —
126
+ // a hand-authored skill, an extra file the manifest did not write, a
127
+ // hand-edited deploy-written file — is reported in `refused` and never
128
+ // touched. This mirrors deploy's own contract that it never writes a
129
+ // file it did not itself originate (deploy.ts's header).
130
+ // ---------------------------------------------------------------------------
131
+
132
+ export interface SkillRefusal {
133
+ readonly folder: string;
134
+ readonly skill: string;
135
+ /** Repo-relative posix path to the entry the primitive refused to remove. */
136
+ readonly path: string;
137
+ /** Human-readable reason the entry was refused. */
138
+ readonly reason: string;
139
+ }
140
+
141
+ export interface RemoveDeployedSkillFoldersOptions {
142
+ readonly assetsDir: string;
143
+ readonly targetRepo: string;
144
+ /** Defaults to loadProfile() (the package's own deploy-profile.json) — pass explicitly when the caller has already resolved real on-disk paths (see profile.ts's header). */
145
+ readonly profile?: DeployProfile;
146
+ /** When set, only the skill folders for this surface (profile.surfaces[].name) are in scope. */
147
+ readonly surfaceFilter?: string;
148
+ /** When set, only this skill id (assets/ skill folder name) is in scope. */
149
+ readonly skillFilter?: string;
150
+ /** Computes the exact same removed/absent/refused result without unlinking anything. */
151
+ readonly dryRun?: boolean;
152
+ }
153
+
154
+ export interface RemoveDeployedSkillFoldersResult {
155
+ /** Repo-relative posix paths the primitive actually removed (or would have, in --dry-run). Sorted, deduplicated. */
156
+ readonly removed: readonly string[];
157
+ /** (surface, skill) pairs the deploy profile resolves to that are in scope but were already absent on disk. Sorted, deduplicated, "<folder>/<skill>". */
158
+ readonly absent: readonly string[];
159
+ /** Entries the manifest did not record but which live inside a managed skill dir or surface folder — never removed, always reported. */
160
+ readonly refused: readonly SkillRefusal[];
161
+ }
162
+
163
+ /**
164
+ * The deployed-skill removal primitive (az696). Removes every file the
165
+ * deploy manifest records, restricted by `surfaceFilter`/`skillFilter`
166
+ * (intersection) and the repo's `[assets.skills]` subset. Idempotent: a
167
+ * second call with the same arguments reports every target in `absent`.
168
+ */
169
+ export function removeDeployedSkillFolders(options: RemoveDeployedSkillFoldersOptions): RemoveDeployedSkillFoldersResult {
170
+ const { assetsDir, targetRepo } = options;
171
+ const dryRun = options.dryRun === true;
172
+
173
+ if (!existsSync(assetsDir) || !statSync(assetsDir).isDirectory()) {
174
+ throw new Error(`agent-skills assets directory not found: ${assetsDir}`);
175
+ }
176
+ if (!existsSync(targetRepo) || !statSync(targetRepo).isDirectory()) {
177
+ throw new Error(`uninstall target is not a directory: ${targetRepo}`);
178
+ }
179
+
180
+ const profile = options.profile ?? loadProfile();
181
+ const availableSkills = listSourceSkillNames(assetsDir);
182
+
183
+ const selection = resolveSkillSelection(targetRepo, availableSkills);
184
+ if (!selection.ok) throw new Error(selection.error);
185
+ const selectedSkills = [...new Set(selection.skills)].sort();
186
+
187
+ const manifest = readManifest(targetRepo);
188
+
189
+ // Build the in-scope (surface, skill) set, applying both filters as
190
+ // intersection. An unknown surfaceFilter or skillFilter is silently
191
+ // out-of-scope — the caller (the CLI) validates the names first and
192
+ // the primitive trusts its inputs.
193
+ const inScopeSurfaces = profile.surfaces.filter(
194
+ (surface) => options.surfaceFilter === undefined || surface.name === options.surfaceFilter,
195
+ );
196
+ const inScopeSkills = selectedSkills.filter(
197
+ (skill) => options.skillFilter === undefined || skill === options.skillFilter,
198
+ );
199
+
200
+ // Build the manifest-ownership set restricted to the in-scope
201
+ // (surface, skill) pairs. Everything the manifest records under those
202
+ // pairs is removable; everything else is not in scope.
203
+ const ownedPaths = new Set<string>();
204
+ for (const surface of inScopeSurfaces) {
205
+ for (const skill of inScopeSkills) {
206
+ const prefix = `${surface.folder}/${skill}/`;
207
+ for (const file of manifest.files) {
208
+ if (file.startsWith(prefix)) ownedPaths.add(file);
209
+ }
210
+ }
211
+ }
212
+
213
+ const removed: string[] = [];
214
+ for (const relPath of [...ownedPaths].sort()) {
215
+ const absolute = join(targetRepo, relPath);
216
+ if (existsSync(absolute)) {
217
+ if (!dryRun) {
218
+ unlinkSync(absolute);
219
+ removeEmptyParents(targetRepo, dirname(absolute));
220
+ }
221
+ }
222
+ removed.push(relPath);
223
+ }
224
+
225
+ // Safety check: every path inside a managed skill dir or surface
226
+ // folder that is NOT in the manifest is reported as a refusal. The
227
+ // surface folder itself (e.g. `.claude/skills`) is reported when it
228
+ // exists and is not under any managed skill dir — the agent never
229
+ // removes the surface root on its own, only the skill dirs under it.
230
+ const refused: SkillRefusal[] = [];
231
+ for (const surface of inScopeSurfaces) {
232
+ const surfaceAbs = join(targetRepo, surface.folder);
233
+ if (!existsSync(surfaceAbs)) continue;
234
+ const inScope = options.skillFilter === undefined
235
+ ? inScopeSkills
236
+ : inScopeSkills.filter((skill) => skill === options.skillFilter);
237
+
238
+ // Hand-authored skill dirs the manifest did not write.
239
+ for (const name of directoryNames(surfaceAbs)) {
240
+ if (inScope.includes(name)) continue;
241
+ // A skill the manifest owns under this surface is in-scope; an
242
+ // unrecorded same-name dir is user-authored and refused.
243
+ const isManaged = manifest.files.some((file) => file.startsWith(`${surface.folder}/${name}/`));
244
+ if (isManaged) continue; // already handled in the removal pass above
245
+ refused.push({
246
+ folder: surface.folder,
247
+ skill: name,
248
+ path: `${surface.folder}/${name}`,
249
+ reason: "folder is not recorded in the deploy manifest; refusing to remove user-authored content",
250
+ });
251
+ }
252
+
253
+ // For each in-scope skill dir, any file inside that is not in the
254
+ // manifest is reported and never removed.
255
+ for (const skill of inScope) {
256
+ const skillDirAbs = join(surfaceAbs, skill);
257
+ if (!existsSync(skillDirAbs)) continue;
258
+ const isManaged = manifest.files.some((file) => file.startsWith(`${surface.folder}/${skill}/`));
259
+ if (!isManaged) continue; // already refused above as user-authored
260
+ for (const relFile of walkFiles(skillDirAbs)) {
261
+ const relPath = `${surface.folder}/${skill}/${relFile}`;
262
+ if (ownedPaths.has(relPath)) continue;
263
+ refused.push({
264
+ folder: surface.folder,
265
+ skill,
266
+ path: relPath,
267
+ reason: "file is inside a managed skill dir but is not recorded in the deploy manifest; refusing to remove user-authored content",
268
+ });
269
+ }
270
+ }
271
+ }
272
+ refused.sort((a, b) => a.path.localeCompare(b.path));
273
+
274
+ // The "absent" report: every (surface, skill) pair the deploy profile
275
+ // resolves to, filtered to in-scope, that has no files on disk and no
276
+ // manifest record. This is the idempotency signal a second run will
277
+ // see.
278
+ const absent: string[] = [];
279
+ for (const surface of inScopeSurfaces) {
280
+ for (const skill of inScopeSkills) {
281
+ const skillDirAbs = join(targetRepo, surface.folder, skill);
282
+ const prefix = `${surface.folder}/${skill}/`;
283
+ const hasManifestEntry = manifest.files.some((file) => file.startsWith(prefix));
284
+ if (!hasManifestEntry && !existsSync(skillDirAbs)) {
285
+ absent.push(`${surface.folder}/${skill}`);
286
+ }
287
+ }
288
+ }
289
+ absent.sort();
290
+
291
+ // Rewrite the manifest to drop the paths we removed (and only those).
292
+ // The surviving set keeps every path the manifest recorded that is
293
+ // outside the in-scope (surface, skill) pairs — those belong to other
294
+ // surfaces/skills the user did not ask to uninstall.
295
+ if (!dryRun) {
296
+ const surviving = manifest.files.filter((file) => !ownedPaths.has(file));
297
+ writeManifest(targetRepo, surviving);
298
+ }
299
+
300
+ return { removed: removed.sort(), absent, refused };
301
+ }
302
+
96
303
  export function deploySkills(options: DeploySkillsOptions): DeploySkillsResult {
97
304
  const { assetsDir, targetRepo } = options;
98
305
  const dryRun = options.dryRun === true;
@@ -125,8 +332,47 @@ export function deploySkills(options: DeploySkillsOptions): DeploySkillsResult {
125
332
  // conflict, with a reason naming what disqualified it.
126
333
  const takeoverFiles = new Set<string>();
127
334
  const takeoverConflictReasons = new Map<string, string>();
335
+ /** `${folder}/${skill}` in a retired folder that the legacy lock wrote and assets/ retired — removed by the retired-folder cleanup below. */
336
+ const legacyRetiredInRetired = new Set<string>();
128
337
  if (legacyLock !== null) {
338
+ // Legacy retirement: a folder the old engine fully wrote (per the
339
+ // lock) whose skill no longer ships in assets/ is folded into
340
+ // takeoverFiles so the removal pass below deletes it — the header's
341
+ // "dropped from assets/ is removed" promise extended to old-engine
342
+ // folders. A repo-subset exclusion keeps the folder (the subset only
343
+ // limits what THIS deploy writes, it does not retract skills assets
344
+ // still ships). A folder failing the ownership check (hand-modified,
345
+ // extra file) is left untouched: it is becoming user-owned, the same
346
+ // disposition as the takeover conflict case. In retired folders there
347
+ // is no takeover pass: the folder is only recorded, and the
348
+ // retired-folder cleanup removes it under the same conditions.
349
+ const legacyRetired = (folder: string, foldIntoTakeover: boolean) => {
350
+ const prefix = `${folder}/`;
351
+ for (const skill of new Set(
352
+ [...legacyLock!.files.keys()]
353
+ .filter((relPath) => relPath.startsWith(prefix))
354
+ .map((relPath) => relPath.slice(prefix.length).split("/", 1)[0]!),
355
+ )) {
356
+ if (availableSkills.includes(skill)) continue; // still shipped — selected or subset path owns it
357
+ const skillDirRel = `${folder}/${skill}`;
358
+ const skillDirAbs = join(targetRepo, skillDirRel);
359
+ if (!existsSync(skillDirAbs)) continue;
360
+ if (manifest.files.some((file) => file.startsWith(`${skillDirRel}/`))) continue; // already ours
361
+
362
+ const check = checkLegacyOwnership(legacyLock!, targetRepo, skillDirRel, skillDirAbs);
363
+ if (!check.owned) continue;
364
+ if (foldIntoTakeover) {
365
+ for (const relFile of walkFiles(skillDirAbs)) takeoverFiles.add(`${skillDirRel}/${relFile}`);
366
+ } else {
367
+ legacyRetiredInRetired.add(skillDirRel);
368
+ }
369
+ }
370
+ };
129
371
  for (const surface of profile.surfaces) {
372
+ // az567 surfaceFilter: skip non-target surfaces entirely. The
373
+ // legacy-takeover pass for the non-target surface is irrelevant
374
+ // when only one surface is being deployed.
375
+ if (options.surfaceFilter !== undefined && surface.name !== options.surfaceFilter) continue;
130
376
  for (const skill of selectedSkills) {
131
377
  const skillDirRel = `${surface.folder}/${skill}`;
132
378
  const skillDirAbs = join(targetRepo, skillDirRel);
@@ -140,12 +386,26 @@ export function deploySkills(options: DeploySkillsOptions): DeploySkillsResult {
140
386
  takeoverConflictReasons.set(skillDirRel, check.reason!);
141
387
  }
142
388
  }
389
+
390
+ legacyRetired(surface.folder, true);
391
+ }
392
+ for (const folder of retiredFolders(profile)) {
393
+ // az567 surfaceFilter: retired-folder cleanup is also filtered to
394
+ // the active surfaces. A non-target surface's retired folder is
395
+ // left exactly as found.
396
+ if (options.surfaceFilter !== undefined) {
397
+ const isTargetActive = profile.surfaces.some((s) => s.folder === folder && s.name === options.surfaceFilter);
398
+ if (!isTargetActive) continue;
399
+ }
400
+ legacyRetired(folder, false);
143
401
  }
144
402
  }
145
403
 
146
404
  const manifestFiles = new Set([...manifest.files, ...takeoverFiles]);
147
405
  const adopted: string[] = [];
148
406
 
407
+ // Total over `selectedSkills`: every loop below iterates that same array, so
408
+ // `sourceFilesBySkill.get(skill)` is never undefined and needs no fallback.
149
409
  const sourceFilesBySkill = new Map<string, readonly string[]>();
150
410
  for (const skill of selectedSkills) sourceFilesBySkill.set(skill, walkFiles(join(assetsDir, skill)));
151
411
 
@@ -155,6 +415,10 @@ export function deploySkills(options: DeploySkillsOptions): DeploySkillsResult {
155
415
  const keptPaths = new Set<string>();
156
416
 
157
417
  for (const surface of profile.surfaces) {
418
+ // az567 surfaceFilter: only iterate the named surface. Other
419
+ // surfaces' deploy paths, conflicts, and removal decisions are out
420
+ // of scope and never appear in this result.
421
+ if (options.surfaceFilter !== undefined && surface.name !== options.surfaceFilter) continue;
158
422
  for (const skill of selectedSkills) {
159
423
  const skillDirRel = `${surface.folder}/${skill}`;
160
424
  const skillDirAbs = join(targetRepo, skillDirRel);
@@ -164,7 +428,7 @@ export function deploySkills(options: DeploySkillsOptions): DeploySkillsResult {
164
428
  // An unrecorded folder whose whole tree is byte-identical to the asset
165
429
  // is adopted: its files fall through to the write loop below as
166
430
  // unchanged and so land in the manifest. Anything else stays a conflict.
167
- if (skillDirExists && !managedByUs && folderIdenticalToAsset(skillDirAbs, join(assetsDir, skill), sourceFilesBySkill.get(skill) ?? [])) {
431
+ if (skillDirExists && !managedByUs && folderIdenticalToAsset(skillDirAbs, join(assetsDir, skill), sourceFilesBySkill.get(skill)!)) {
168
432
  managedByUs = true;
169
433
  adopted.push(skillDirRel);
170
434
  }
@@ -180,7 +444,7 @@ export function deploySkills(options: DeploySkillsOptions): DeploySkillsResult {
180
444
  continue; // never write into it, never claim its files in the manifest
181
445
  }
182
446
 
183
- for (const relFile of sourceFilesBySkill.get(skill) ?? []) {
447
+ for (const relFile of sourceFilesBySkill.get(skill)!) {
184
448
  const targetRel = `${skillDirRel}/${relFile}`;
185
449
  keptPaths.add(targetRel);
186
450
  const targetAbs = join(targetRepo, targetRel);
@@ -205,6 +469,14 @@ export function deploySkills(options: DeploySkillsOptions): DeploySkillsResult {
205
469
  // profile actually manages, even though every manifest entry should
206
470
  // already satisfy that by construction.
207
471
  if (!profile.surfaces.some((surface) => relPath.startsWith(`${surface.folder}/`))) continue;
472
+ // az567 surfaceFilter: paths under a non-target surface are not in
473
+ // scope and must not be removed during a per-surface deploy.
474
+ if (options.surfaceFilter !== undefined) {
475
+ const inTargetSurface = profile.surfaces.some(
476
+ (surface) => surface.name === options.surfaceFilter && relPath.startsWith(`${surface.folder}/`),
477
+ );
478
+ if (!inTargetSurface) continue;
479
+ }
208
480
  const absolute = join(targetRepo, relPath);
209
481
  if (existsSync(absolute)) {
210
482
  if (!dryRun) {
@@ -230,11 +502,21 @@ export function deploySkills(options: DeploySkillsOptions): DeploySkillsResult {
230
502
  const retiredRemovals: string[] = [];
231
503
  const availableSkillSet = new Set(availableSkills);
232
504
  for (const folder of retiredFolders(profile)) {
505
+ // az567 surfaceFilter: only clean up retired folders that are NOT
506
+ // tied to a non-target surface. A retired folder is per-profile
507
+ // (the active-surface filters above do not reduce the retired list);
508
+ // when a surfaceFilter is set, retired-folder cleanup runs the same
509
+ // way it does for a full deploy, because retired folders are not
510
+ // tied to a particular active surface.
233
511
  const folderAbs = join(targetRepo, folder);
234
512
  if (!existsSync(folderAbs)) continue;
235
513
 
236
514
  for (const name of directoryNames(folderAbs)) {
237
- if (!availableSkillSet.has(name)) continue; // not ours to manage — left byte-for-byte
515
+ // Ours to remove when the skill still ships in assets/ (a stale
516
+ // duplicate of a live skill) or the legacy lock proves the old
517
+ // engine wrote this copy of a now-retired skill. Anything else was
518
+ // never this package's to manage — left byte-for-byte.
519
+ if (!availableSkillSet.has(name) && !legacyRetiredInRetired.has(`${folder}/${name}`)) continue;
238
520
  if (!dryRun) removeDirRecursive(join(folderAbs, name));
239
521
  retiredRemovals.push(`${folder}/${name}`);
240
522
  }
@@ -1,4 +1,13 @@
1
- export { deploySkills, type DeploySkillsOptions, type DeploySkillsResult, type SkillConflict } from "./deploy.js";
1
+ export {
2
+ deploySkills,
3
+ type DeploySkillsOptions,
4
+ type DeploySkillsResult,
5
+ type SkillConflict,
6
+ removeDeployedSkillFolders,
7
+ type RemoveDeployedSkillFoldersOptions,
8
+ type RemoveDeployedSkillFoldersResult,
9
+ type SkillRefusal,
10
+ } from "./deploy.js";
2
11
  export {
3
12
  doctorAssets,
4
13
  doctorDeployment,
@@ -68,13 +68,22 @@ adl mcp cli pr-create-or-update --action create \
68
68
  --title 'feat(cli): add direct mode' \
69
69
  --description $'## Summary\n\nAdds a CLI path.\n\n## Why\n\nMCP can be unavailable.\n\n## Changes\n\n- Add CLI mode'
70
70
  adl mcp cli build-run --id 17 --branch refs/heads/integration
71
- adl mcp cli workitem-create-or-update --type Bug --title 'CLI failure' --parent-id 378
71
+ adl mcp cli workitem-create-or-update-bug --title 'CLI failure' --parent-id 378 --effort 1 --description $'## Current behaviour\n\nCLI exits 2.\n\n## Expected behaviour\n\nExits 0.\n\n## Behaviour that must not change\n\nJSON on stdout.\n\n## Responsible Feature\n\naz378\n\n## Verification\n\nRe-run the failing command.'
72
72
  ```
73
73
 
74
74
  Run `adl mcp cli --help` for the complete flag contract. The CLI has exactly the
75
- current MCP surface: `pr_list_or_get`, `pr_create_or_update`, `build_list_or_get`,
76
- `build_run`, `workitem_list_or_get`, and `workitem_create_or_update`; the CLI exposes
77
- their hyphenated equivalents.
75
+ current MCP surface: `pr_list_or_get`, `pr_create_or_update`, `pr_review`,
76
+ `build_list_or_get`, `build_run`, `workitem_list_or_get`,
77
+ `workitem_create_or_update_feature`, `workitem_create_or_update_pbi`,
78
+ `workitem_create_or_update_bug`, `workitem_comments_read`, `workitem_attachments`,
79
+ `activity_add` and `activity_list`; the CLI exposes their hyphenated equivalents.
80
+ The blanket `workitem_create_or_update` was split per work-item type so the agent
81
+ gate can enforce each type's mandatory fields (Feature: title + parentId + priority
82
+ + intent.md description; PBI/Bug: title + parentId + item-file description + effort
83
+ in days; `comment` on every update of any type); the read side
84
+ (`workitem_list_or_get`) stays one tool. Per-type mandatory fields and the
85
+ heading-parse gates: see
86
+ `packages/agent-skills/assets/workitems-process/references/ado-and-git.md` §1a.
78
87
 
79
88
  ## Source
80
89
 
@@ -0,0 +1,6 @@
1
+ # Bun test config — like Python's conftest.py: a preload file runs once
2
+ # before every test in this package. tests/setup.ts installs the test-only
3
+ # AzureRemote defaults (org / project / repository) that the resolvers
4
+ # fall back to when no argument and no git remote resolve.
5
+ [test]
6
+ preload = ["./tests/setup.ts"]
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "start": "bun src/mcp-server.ts",
8
- "test": "bun test --coverage",
8
+ "test": "bun test --isolate --coverage --timeout 30000",
9
9
  "typecheck": "tsc --noEmit"
10
10
  },
11
11
  "dependencies": {
@@ -95,7 +95,7 @@ const MAIN = [
95
95
  "In Planning",
96
96
  "Awaiting Approval",
97
97
  "Approved",
98
- "Spec Validation",
98
+ "Design Validation",
99
99
  "In Implementation",
100
100
  "In Testing",
101
101
  "In Review",