@open-agent-toolkit/cli 0.2.4 → 0.2.6

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 (106) hide show
  1. package/assets/docs/cli-utilities/configuration.md +40 -0
  2. package/assets/docs/cli-utilities/tool-packs.md +31 -0
  3. package/assets/docs/workflows/projects/artifacts.md +27 -0
  4. package/assets/docs/workflows/projects/implementation-execution.md +30 -5
  5. package/assets/docs/workflows/skills/explainer-kit.md +125 -0
  6. package/assets/docs/workflows/skills/index.md +4 -0
  7. package/assets/migration/pjm-restructure.md +12 -0
  8. package/assets/public-package-versions.json +4 -4
  9. package/assets/skills/explainer-kit/SKILL.md +95 -0
  10. package/assets/skills/explainer-kit/examples/project-explainer/content.md +31 -0
  11. package/assets/skills/explainer-kit/examples/project-explainer/fact-base.md +22 -0
  12. package/assets/skills/explainer-kit/examples/project-recap/content.md +34 -0
  13. package/assets/skills/explainer-kit/examples/project-recap/fact-base.md +22 -0
  14. package/assets/skills/explainer-kit/examples/theme-bundle.json +87 -0
  15. package/assets/skills/explainer-kit/palettes/ember.json +37 -0
  16. package/assets/skills/explainer-kit/palettes/forest.json +37 -0
  17. package/assets/skills/explainer-kit/palettes/neutral.json +37 -0
  18. package/assets/skills/explainer-kit/palettes/ocean.json +37 -0
  19. package/assets/skills/explainer-kit/palettes/violet.json +37 -0
  20. package/assets/skills/explainer-kit/profiles/clean.json +42 -0
  21. package/assets/skills/explainer-kit/profiles/editorial.json +42 -0
  22. package/assets/skills/explainer-kit/profiles/technical.json +39 -0
  23. package/assets/skills/explainer-kit/recipes/engineer-tour.json +33 -0
  24. package/assets/skills/explainer-kit/recipes/program-recap.json +34 -0
  25. package/assets/skills/explainer-kit/recipes/project-explainer.json +33 -0
  26. package/assets/skills/explainer-kit/recipes/project-recap.json +34 -0
  27. package/assets/skills/explainer-kit/references/contracts.md +101 -0
  28. package/assets/skills/explainer-kit/references/destination-contract.md +94 -0
  29. package/assets/skills/explainer-kit/references/extension-contract.md +71 -0
  30. package/assets/skills/explainer-kit/references/fact-base-contract.md +119 -0
  31. package/assets/skills/explainer-kit/schemas/build-record.schema.json +92 -0
  32. package/assets/skills/explainer-kit/schemas/durability-evidence.schema.json +53 -0
  33. package/assets/skills/explainer-kit/schemas/fact-base.schema.json +129 -0
  34. package/assets/skills/explainer-kit/schemas/manifest.schema.json +193 -0
  35. package/assets/skills/explainer-kit/schemas/publish-receipt.schema.json +97 -0
  36. package/assets/skills/explainer-kit/schemas/publish-request.schema.json +32 -0
  37. package/assets/skills/explainer-kit/schemas/run-request.schema.json +132 -0
  38. package/assets/skills/explainer-kit/schemas/theme.schema.json +217 -0
  39. package/assets/skills/explainer-kit/scripts/lib/content-approval.mjs +180 -0
  40. package/assets/skills/explainer-kit/scripts/lib/contracts.mjs +680 -0
  41. package/assets/skills/explainer-kit/scripts/lib/durability.mjs +538 -0
  42. package/assets/skills/explainer-kit/scripts/lib/fact-base.mjs +494 -0
  43. package/assets/skills/explainer-kit/scripts/lib/fs-safe.mjs +218 -0
  44. package/assets/skills/explainer-kit/scripts/lib/qa.mjs +512 -0
  45. package/assets/skills/explainer-kit/scripts/lib/recipes.mjs +289 -0
  46. package/assets/skills/explainer-kit/scripts/lib/records.mjs +231 -0
  47. package/assets/skills/explainer-kit/scripts/lib/render.mjs +485 -0
  48. package/assets/skills/explainer-kit/scripts/lib/s3-static.mjs +587 -0
  49. package/assets/skills/explainer-kit/scripts/lib/safe-paths.mjs +96 -0
  50. package/assets/skills/explainer-kit/scripts/lib/theme.mjs +332 -0
  51. package/assets/skills/explainer-kit/scripts/publish.mjs +76 -0
  52. package/assets/skills/explainer-kit/scripts/record-durability.mjs +64 -0
  53. package/assets/skills/explainer-kit/scripts/render-qa.mjs +273 -0
  54. package/assets/skills/explainer-kit/scripts/run.mjs +778 -0
  55. package/assets/skills/explainer-kit/scripts/validate.mjs +59 -0
  56. package/assets/skills/explainer-kit/templates/deck-shell.html +233 -0
  57. package/assets/skills/explainer-kit/templates/diagram-shell.html +219 -0
  58. package/assets/skills/explainer-kit/templates/engineer-tour.html +273 -0
  59. package/assets/skills/explainer-kit/templates/house-style.html +218 -0
  60. package/assets/skills/oat-explainer-kit/SKILL.md +92 -0
  61. package/assets/skills/oat-explainer-kit/references/config-contract.md +67 -0
  62. package/assets/skills/oat-explainer-kit/references/lifecycle-contract.md +143 -0
  63. package/assets/skills/oat-explainer-kit/references/migration.md +143 -0
  64. package/assets/skills/oat-explainer-kit/scripts/bind-project-sources.mjs +103 -0
  65. package/assets/skills/oat-explainer-kit/scripts/check-core.mjs +127 -0
  66. package/assets/skills/oat-explainer-kit/scripts/finalize-tracked-run.mjs +392 -0
  67. package/assets/skills/oat-explainer-kit/scripts/persist-intent.mjs +130 -0
  68. package/assets/skills/oat-explainer-kit/scripts/resolve-config.mjs +293 -0
  69. package/assets/skills/oat-explainer-kit/scripts/resolve-intent.mjs +209 -0
  70. package/assets/skills/oat-explainer-kit/scripts/resolve-paths.mjs +166 -0
  71. package/assets/skills/oat-explainer-kit/scripts/run.mjs +284 -0
  72. package/assets/skills/oat-project-autonomous/SKILL.md +22 -1
  73. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +5 -1
  74. package/assets/skills/oat-project-complete/SKILL.md +166 -28
  75. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +5 -1
  76. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  77. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +84 -9
  78. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +5 -1
  79. package/assets/skills/oat-project-next/SKILL.md +31 -11
  80. package/assets/skills/oat-project-plan/SKILL.md +30 -1
  81. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +5 -1
  82. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +5 -1
  83. package/assets/skills/oat-project-summary/SKILL.md +20 -1
  84. package/assets/templates/state.md +4 -1
  85. package/dist/commands/config/index.d.ts.map +1 -1
  86. package/dist/commands/config/index.js +232 -1
  87. package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
  88. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  89. package/dist/commands/init/tools/shared/skill-manifest.js +2 -0
  90. package/dist/commands/project/archive/archive-utils.d.ts +12 -0
  91. package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
  92. package/dist/commands/project/archive/archive-utils.js +320 -8
  93. package/dist/commands/project/archive/index.d.ts.map +1 -1
  94. package/dist/commands/project/archive/index.js +1 -0
  95. package/dist/commands/project/archive/push-runner.d.ts +1 -0
  96. package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
  97. package/dist/commands/project/archive/push-runner.js +9 -2
  98. package/dist/config/oat-config.d.ts +26 -0
  99. package/dist/config/oat-config.d.ts.map +1 -1
  100. package/dist/config/oat-config.js +88 -0
  101. package/dist/config/resolve.d.ts.map +1 -1
  102. package/dist/config/resolve.js +18 -0
  103. package/dist/validation/project-state.d.ts +3 -0
  104. package/dist/validation/project-state.d.ts.map +1 -1
  105. package/dist/validation/project-state.js +91 -0
  106. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  import { readFile as readFileDefault } from 'node:fs/promises';
2
- import { join } from 'node:path';
2
+ import { isAbsolute, join } from 'node:path';
3
3
  import { buildCommandContext } from '../../app/command-context.js';
4
4
  import { resolveProjectsRoot } from '../shared/oat-paths.js';
5
5
  import { confirmAction, } from '../shared/shared.prompts.js';
@@ -37,6 +37,14 @@ const KEY_ORDER = [
37
37
  'documentation.tooling',
38
38
  'documentation.config',
39
39
  'documentation.requireForProjectCompletion',
40
+ 'explainers.defaults.palette',
41
+ 'explainers.defaults.visualProfile',
42
+ 'explainers.defaults.themeBundlePath',
43
+ 'explainers.publish.provider',
44
+ 'explainers.publish.s3Uri',
45
+ 'explainers.publish.publicBaseUrl',
46
+ 'explainers.publish.awsRegion',
47
+ 'explainers.publish.awsProfile',
40
48
  'git.defaultBranch',
41
49
  'projects.root',
42
50
  'tools.brainstorm',
@@ -65,6 +73,8 @@ const KEY_ORDER = [
65
73
  'workflow.dispatchCeiling.preset',
66
74
  'workflow.dispatchCeiling.providers.codex',
67
75
  'workflow.dispatchCeiling.providers.claude',
76
+ 'workflow.explainers.projectExplainer',
77
+ 'workflow.explainers.projectRecap',
68
78
  'workflow.gateTimeouts.code',
69
79
  'workflow.gateTimeouts.artifact',
70
80
  'worktrees.root',
@@ -312,6 +322,116 @@ const CONFIG_CATALOG = [
312
322
  owningCommand: 'oat tools install / oat tools update',
313
323
  description: 'Whether the workflows tool pack is installed.',
314
324
  },
325
+ {
326
+ key: 'explainers.defaults.palette',
327
+ group: 'Explainer Defaults (3-layer: local > shared > user)',
328
+ file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
329
+ scope: 'local, shared, or user',
330
+ type: 'non-empty string',
331
+ defaultValue: 'neutral',
332
+ mutability: 'read/write',
333
+ owningCommand: 'oat config set explainers.defaults.palette <value> [--local|--shared|--user]',
334
+ description: 'Named default color palette for explainer builds.',
335
+ },
336
+ {
337
+ key: 'explainers.defaults.visualProfile',
338
+ group: 'Explainer Defaults (3-layer: local > shared > user)',
339
+ file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
340
+ scope: 'local, shared, or user',
341
+ type: 'non-empty string',
342
+ defaultValue: 'clean',
343
+ mutability: 'read/write',
344
+ owningCommand: 'oat config set explainers.defaults.visualProfile <value> [--local|--shared|--user]',
345
+ description: 'Named default visual profile for explainer builds.',
346
+ },
347
+ {
348
+ key: 'explainers.defaults.themeBundlePath',
349
+ group: 'Explainer Defaults (local > shared)',
350
+ file: '.oat/config.local.json | .oat/config.json',
351
+ scope: 'local or shared',
352
+ type: 'path',
353
+ defaultValue: 'unset',
354
+ mutability: 'read/write',
355
+ owningCommand: 'oat config set explainers.defaults.themeBundlePath <path> [--local|--shared]',
356
+ description: 'Theme bundle path; shared values must be repository-relative and local values may be absolute.',
357
+ },
358
+ {
359
+ key: 'explainers.publish.provider',
360
+ group: 'Explainer Publish (shared)',
361
+ file: '.oat/config.json',
362
+ scope: 'shared repo',
363
+ type: 's3-static',
364
+ defaultValue: 'unset',
365
+ mutability: 'read/write',
366
+ owningCommand: 'oat config set explainers.publish.provider s3-static --shared',
367
+ description: 'Static publishing provider for explainer artifacts.',
368
+ },
369
+ {
370
+ key: 'explainers.publish.s3Uri',
371
+ group: 'Explainer Publish (shared)',
372
+ file: '.oat/config.json',
373
+ scope: 'shared repo',
374
+ type: 's3:// URI',
375
+ defaultValue: 'unset',
376
+ mutability: 'read/write',
377
+ owningCommand: 'oat config set explainers.publish.s3Uri <s3://bucket/prefix> --shared',
378
+ description: 'Shared S3 destination root for explainer publishing.',
379
+ },
380
+ {
381
+ key: 'explainers.publish.publicBaseUrl',
382
+ group: 'Explainer Publish (shared)',
383
+ file: '.oat/config.json',
384
+ scope: 'shared repo',
385
+ type: 'https:// URL',
386
+ defaultValue: 'unset',
387
+ mutability: 'read/write',
388
+ owningCommand: 'oat config set explainers.publish.publicBaseUrl <https://url> --shared',
389
+ description: 'Shared public URL root for published explainer artifacts.',
390
+ },
391
+ {
392
+ key: 'explainers.publish.awsRegion',
393
+ group: 'Explainer Publish (shared)',
394
+ file: '.oat/config.json',
395
+ scope: 'shared repo',
396
+ type: 'non-empty string',
397
+ defaultValue: 'unset',
398
+ mutability: 'read/write',
399
+ owningCommand: 'oat config set explainers.publish.awsRegion <region> --shared',
400
+ description: 'AWS region used for explainer publishing.',
401
+ },
402
+ {
403
+ key: 'explainers.publish.awsProfile',
404
+ group: 'Explainer Publish Credentials (local > user)',
405
+ file: '.oat/config.local.json | ~/.oat/config.json',
406
+ scope: 'local or user',
407
+ type: 'non-empty string',
408
+ defaultValue: 'unset',
409
+ mutability: 'read/write',
410
+ owningCommand: 'oat config set explainers.publish.awsProfile <profile> [--local|--user]',
411
+ description: 'Checkout- or user-specific AWS profile used for explainer publishing.',
412
+ },
413
+ {
414
+ key: 'workflow.explainers.projectExplainer',
415
+ group: 'Workflow Preferences (3-layer: local > shared > user)',
416
+ file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
417
+ scope: 'workflow',
418
+ type: 'always | ask | never',
419
+ defaultValue: 'ask',
420
+ mutability: 'read/write',
421
+ owningCommand: 'oat config set workflow.explainers.projectExplainer <always|ask|never>',
422
+ description: 'Controls project-explainer lifecycle invocation.',
423
+ },
424
+ {
425
+ key: 'workflow.explainers.projectRecap',
426
+ group: 'Workflow Preferences (3-layer: local > shared > user)',
427
+ file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
428
+ scope: 'workflow',
429
+ type: 'always | ask | never',
430
+ defaultValue: 'ask',
431
+ mutability: 'read/write',
432
+ owningCommand: 'oat config set workflow.explainers.projectRecap <always|ask|never>',
433
+ description: 'Controls project-recap lifecycle invocation.',
434
+ },
315
435
  {
316
436
  key: 'activeProject',
317
437
  group: 'Repo Local (.oat/config.local.json)',
@@ -709,6 +829,38 @@ function normalizeSharedRoot(value) {
709
829
  }
710
830
  return trimmed.replace(/\/+$/, '');
711
831
  }
832
+ function parseExplainerValue(key, rawValue, surface) {
833
+ const value = rawValue.trim();
834
+ if (!value) {
835
+ throw new Error(`Invalid value for ${key}: value cannot be empty.`);
836
+ }
837
+ if (key === 'explainers.defaults.themeBundlePath') {
838
+ if (surface === 'shared' &&
839
+ (isAbsolute(value) || value === '..' || value.startsWith('../'))) {
840
+ throw new Error(`Invalid value for ${key}: shared theme bundle paths must be repository-relative.`);
841
+ }
842
+ return value;
843
+ }
844
+ if (key === 'explainers.publish.provider') {
845
+ if (value !== 's3-static') {
846
+ throw new Error(`Invalid value for ${key}: expected 's3-static', got '${rawValue}'.`);
847
+ }
848
+ return value;
849
+ }
850
+ if (key === 'explainers.publish.s3Uri') {
851
+ if (!/^s3:\/\/[^/\s]+(?:\/.*)?$/.test(value)) {
852
+ throw new Error(`Invalid value for ${key}: expected an s3:// URI, got '${rawValue}'.`);
853
+ }
854
+ return value.replace(/\/+$/, '');
855
+ }
856
+ if (key === 'explainers.publish.publicBaseUrl') {
857
+ if (!/^https:\/\/[^/\s]+(?:\/.*)?$/.test(value)) {
858
+ throw new Error(`Invalid value for ${key}: expected an https:// URL, got '${rawValue}'.`);
859
+ }
860
+ return value.replace(/\/+$/, '');
861
+ }
862
+ return value;
863
+ }
712
864
  const WORKFLOW_ENUM_VALUES = {
713
865
  'workflow.hillCheckpointDefault': ['every', 'final'],
714
866
  'workflow.postImplementSequence': ['wait', 'summary', 'pr', 'docs-pr'],
@@ -730,6 +882,8 @@ const WORKFLOW_ENUM_VALUES = {
730
882
  'opus',
731
883
  'fable',
732
884
  ],
885
+ 'workflow.explainers.projectExplainer': ['always', 'ask', 'never'],
886
+ 'workflow.explainers.projectRecap': ['always', 'ask', 'never'],
733
887
  };
734
888
  function closedDispatchProviderValues(provider) {
735
889
  if (provider === 'codex') {
@@ -774,6 +928,20 @@ function validateSurfaceForKey(key, surface) {
774
928
  }
775
929
  return;
776
930
  }
931
+ if (key.startsWith('explainers.')) {
932
+ const allowed = key === 'explainers.defaults.palette' ||
933
+ key === 'explainers.defaults.visualProfile'
934
+ ? ['shared', 'local', 'user']
935
+ : key === 'explainers.defaults.themeBundlePath'
936
+ ? ['shared', 'local']
937
+ : key === 'explainers.publish.awsProfile'
938
+ ? ['local', 'user']
939
+ : ['shared'];
940
+ if (!allowed.includes(surface)) {
941
+ throw new Error(`Cannot set '${key}' at '${surface}' scope. Allowed scopes: ${allowed.join(', ')}.`);
942
+ }
943
+ return;
944
+ }
777
945
  if (isStructuralKey(key)) {
778
946
  if (surface !== 'shared') {
779
947
  throw new Error(`Cannot set structural key '${key}' at '${surface}' scope. Structural keys (projects.root, worktrees.root, git.*, documentation.*, archive.*, tools.*) can only be set at shared scope (.oat/config.json).`);
@@ -808,6 +976,12 @@ function defaultSurfaceForKey(key) {
808
976
  if (key === 'updateNotifications') {
809
977
  return 'user';
810
978
  }
979
+ if (key === 'explainers.defaults.palette' ||
980
+ key === 'explainers.defaults.visualProfile' ||
981
+ key === 'explainers.defaults.themeBundlePath' ||
982
+ key === 'explainers.publish.awsProfile') {
983
+ return 'local';
984
+ }
811
985
  if (isWorkflowKey(key) || isStateKey(key)) {
812
986
  return 'local';
813
987
  }
@@ -1082,6 +1256,16 @@ function applyWorkflowValue(workflow, key, value) {
1082
1256
  },
1083
1257
  };
1084
1258
  }
1259
+ if (subKey.startsWith('explainers.')) {
1260
+ const explainerKey = subKey.slice('explainers.'.length);
1261
+ return {
1262
+ ...workflow,
1263
+ explainers: {
1264
+ ...workflow.explainers,
1265
+ [explainerKey]: value,
1266
+ },
1267
+ };
1268
+ }
1085
1269
  return {
1086
1270
  ...workflow,
1087
1271
  [subKey]: value,
@@ -1248,6 +1432,53 @@ async function setConfigValue(repoRoot, userConfigDir, key, rawValue, surface, d
1248
1432
  source: 'user',
1249
1433
  };
1250
1434
  }
1435
+ if (key.startsWith('explainers.')) {
1436
+ const nextValue = parseExplainerValue(key, rawValue, effectiveSurface);
1437
+ const section = key.startsWith('explainers.defaults.')
1438
+ ? 'defaults'
1439
+ : 'publish';
1440
+ const field = key.slice(`explainers.${section}.`.length);
1441
+ if (effectiveSurface === 'user') {
1442
+ const userConfig = await dependencies.readUserConfig(userConfigDir);
1443
+ await dependencies.writeUserConfig(userConfigDir, {
1444
+ ...userConfig,
1445
+ explainers: {
1446
+ ...userConfig.explainers,
1447
+ [section]: {
1448
+ ...userConfig.explainers?.[section],
1449
+ [field]: nextValue,
1450
+ },
1451
+ },
1452
+ });
1453
+ return { key, value: nextValue, source: 'user' };
1454
+ }
1455
+ if (effectiveSurface === 'local') {
1456
+ const localConfig = await dependencies.readOatLocalConfig(repoRoot);
1457
+ await dependencies.writeOatLocalConfig(repoRoot, {
1458
+ ...localConfig,
1459
+ explainers: {
1460
+ ...localConfig.explainers,
1461
+ [section]: {
1462
+ ...localConfig.explainers?.[section],
1463
+ [field]: nextValue,
1464
+ },
1465
+ },
1466
+ });
1467
+ return { key, value: nextValue, source: 'local' };
1468
+ }
1469
+ const sharedConfig = await dependencies.readOatConfig(repoRoot);
1470
+ await dependencies.writeOatConfig(repoRoot, {
1471
+ ...sharedConfig,
1472
+ explainers: {
1473
+ ...sharedConfig.explainers,
1474
+ [section]: {
1475
+ ...sharedConfig.explainers?.[section],
1476
+ [field]: nextValue,
1477
+ },
1478
+ },
1479
+ });
1480
+ return { key, value: nextValue, source: 'shared' };
1481
+ }
1251
1482
  const config = await dependencies.readOatConfig(repoRoot);
1252
1483
  if (key.startsWith('documentation.')) {
1253
1484
  const doc = { ...config.documentation };
@@ -11,7 +11,7 @@ export interface PackMetadata {
11
11
  }
12
12
  export declare const PACK_METADATA: Record<string, PackMetadata>;
13
13
  export declare function resolvePackDefaultScope(packName: string): 'user' | 'project';
14
- export declare const WORKFLOW_SKILLS: readonly ["oat-cursor-cloud-projects", "oat-project-autonomous", "oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-dispatch-subagents", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-provide-remote", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-split", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wave-execute", "oat-wave-program", "oat-wrap-up"];
14
+ export declare const WORKFLOW_SKILLS: readonly ["oat-cursor-cloud-projects", "oat-explainer-kit", "oat-project-autonomous", "oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-dispatch-subagents", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-provide-remote", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-split", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wave-execute", "oat-wave-program", "oat-wrap-up"];
15
15
  export declare const WORKFLOW_AGENTS: readonly ["oat-codebase-mapper.md", "oat-phase-implementer.md", "oat-reviewer.md"];
16
16
  export declare const WORKFLOW_TEMPLATES: readonly ["state.md", "discovery.md", "spec.md", "design.md", "plan.md", "implementation.md", "summary.md", "project-log.md"];
17
17
  export declare const WORKFLOW_SCRIPTS: readonly ["generate-oat-state.sh", "generate-thin-index.sh", "resolve-tracking.sh"];
@@ -19,7 +19,7 @@ export declare const IDEA_SKILLS: readonly ["oat-idea-new", "oat-idea-ideate", "
19
19
  export declare const CORE_SKILLS: readonly ["oat-docs", "oat-doctor"];
20
20
  export declare const DOCS_SKILLS: readonly ["authoring-docs", "oat-agent-instructions-analyze", "oat-agent-instructions-apply", "oat-docs-analyze", "oat-docs-apply", "oat-docs-authoring", "oat-docs-bootstrap"];
21
21
  export declare const DOCS_SCRIPTS: readonly ["resolve-tracking.sh"];
22
- export declare const UTILITY_SKILLS: readonly ["create-agnostic-skill", "oat-dispatch-subagents", "oat-repo-improve", "oat-repo-maintainability-review", "oat-review-provide", "oat-review-provide-remote", "oat-review-receive", "oat-review-receive-remote"];
22
+ export declare const UTILITY_SKILLS: readonly ["create-agnostic-skill", "explainer-kit", "oat-dispatch-subagents", "oat-repo-improve", "oat-repo-maintainability-review", "oat-review-provide", "oat-review-provide-remote", "oat-review-receive", "oat-review-receive-remote"];
23
23
  export declare const PROJECT_MANAGEMENT_SKILLS: readonly ["oat-pjm-add-backlog-item", "oat-pjm-decision", "oat-pjm-update-repo-reference", "oat-pjm-review-backlog"];
24
24
  export declare const PROJECT_MANAGEMENT_TEMPLATES: readonly ["backlog-item.md", "roadmap.md", "current-state.md", "decision.md", "repo-agents.md", "pjm-agents.md", "reference-agents.md"];
25
25
  export declare const PROJECT_MANAGEMENT_SCRIPTS: readonly [];
@@ -1 +1 @@
1
- {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,85BAqClB,CAAC;AAEX,eAAO,MAAM,eAAe,oFAIlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,+HASrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,iLAQd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,2NASjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,sHAK5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,yIAQ/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,iBAAiB,6BAA8B,CAAC;AAI7D,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
1
+ {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,m7BAsClB,CAAC;AAEX,eAAO,MAAM,eAAe,oFAIlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,+HASrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,iLAQd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,4OAUjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,sHAK5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,yIAQ/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,iBAAiB,6BAA8B,CAAC;AAI7D,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
@@ -17,6 +17,7 @@ export function resolvePackDefaultScope(packName) {
17
17
  // ── Workflow pack ──────────────────────────────────────────────────
18
18
  export const WORKFLOW_SKILLS = [
19
19
  'oat-cursor-cloud-projects',
20
+ 'oat-explainer-kit',
20
21
  'oat-project-autonomous',
21
22
  'oat-project-capture',
22
23
  'oat-project-clear-active',
@@ -96,6 +97,7 @@ export const DOCS_SCRIPTS = ['resolve-tracking.sh'];
96
97
  // ── Utility pack ───────────────────────────────────────────────────
97
98
  export const UTILITY_SKILLS = [
98
99
  'create-agnostic-skill',
100
+ 'explainer-kit',
99
101
  'oat-dispatch-subagents',
100
102
  'oat-repo-improve',
101
103
  'oat-repo-maintainability-review',
@@ -1,3 +1,4 @@
1
+ import { rename } from 'node:fs/promises';
1
2
  import { copyDirectory, copySingleFile, dirExists, ensureDir, fileExists } from '../../../fs/io.js';
2
3
  export type ExecFileResult = {
3
4
  stdout: string;
@@ -42,6 +43,7 @@ export interface ArchiveProjectOnCompletionOptions {
42
43
  s3Uri?: string | null;
43
44
  s3SyncOnComplete: boolean;
44
45
  summaryExportPath?: string | null;
46
+ projectRecapRun?: string | null;
45
47
  /**
46
48
  * Config-only AWS profile (`archive.awsProfile`). The completion path has no
47
49
  * flag override. When non-empty, this value clobbers any parent-env
@@ -88,12 +90,22 @@ interface ArchiveProjectOnCompletionDependencies extends EnsureS3ArchiveAccessDe
88
90
  }) => Promise<void>;
89
91
  copySingleFile?: typeof copySingleFile;
90
92
  fileExists?: typeof fileExists;
93
+ renamePath?: typeof rename;
91
94
  timestamp?: () => string;
92
95
  }
96
+ export interface ArchiveProjectRecapExportV1 {
97
+ sourceRunRoot: string;
98
+ exportRoot: string;
99
+ manifest: {
100
+ relativePath: 'manifest.json';
101
+ verifiedArtifactCount: number;
102
+ };
103
+ }
93
104
  export interface ArchiveProjectOnCompletionResult {
94
105
  archivePath: string;
95
106
  s3Path: string | null;
96
107
  summaryExportFile: string | null;
108
+ projectRecapExport: ArchiveProjectRecapExportV1 | null;
97
109
  warnings: string[];
98
110
  }
99
111
  export declare const ARCHIVE_SNAPSHOT_METADATA_FILENAME = ".oat-archive-source.json";
@@ -1 +1 @@
1
- {"version":3,"file":"archive-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/archive/archive-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archive-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/archive/archive-utils.ts"],"names":[],"mappings":"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"}