ace-assign 0.37.0

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 (104) hide show
  1. checksums.yaml +7 -0
  2. data/.ace-defaults/assign/catalog/composition-rules.yml +211 -0
  3. data/.ace-defaults/assign/catalog/recipes/batch-tasks.recipe.yml +44 -0
  4. data/.ace-defaults/assign/catalog/recipes/documentation.recipe.yml +35 -0
  5. data/.ace-defaults/assign/catalog/recipes/fix-and-review.recipe.yml +32 -0
  6. data/.ace-defaults/assign/catalog/recipes/implement-simple.recipe.yml +29 -0
  7. data/.ace-defaults/assign/catalog/recipes/implement-with-pr.recipe.yml +48 -0
  8. data/.ace-defaults/assign/catalog/recipes/release-only.recipe.yml +34 -0
  9. data/.ace-defaults/assign/catalog/steps/apply-feedback.step.yml +22 -0
  10. data/.ace-defaults/assign/catalog/steps/commit.step.yml +22 -0
  11. data/.ace-defaults/assign/catalog/steps/create-pr.step.yml +28 -0
  12. data/.ace-defaults/assign/catalog/steps/create-retro.step.yml +22 -0
  13. data/.ace-defaults/assign/catalog/steps/fix-tests.step.yml +22 -0
  14. data/.ace-defaults/assign/catalog/steps/lint.step.yml +22 -0
  15. data/.ace-defaults/assign/catalog/steps/mark-task-done.step.yml +57 -0
  16. data/.ace-defaults/assign/catalog/steps/onboard-base.step.yml +19 -0
  17. data/.ace-defaults/assign/catalog/steps/onboard.step.yml +19 -0
  18. data/.ace-defaults/assign/catalog/steps/plan-task.step.yml +17 -0
  19. data/.ace-defaults/assign/catalog/steps/pre-commit-review.step.yml +34 -0
  20. data/.ace-defaults/assign/catalog/steps/push-to-remote.step.yml +28 -0
  21. data/.ace-defaults/assign/catalog/steps/rebase-with-main.step.yml +28 -0
  22. data/.ace-defaults/assign/catalog/steps/reflect-and-refactor.step.yml +57 -0
  23. data/.ace-defaults/assign/catalog/steps/release-minor.step.yml +23 -0
  24. data/.ace-defaults/assign/catalog/steps/release.step.yml +23 -0
  25. data/.ace-defaults/assign/catalog/steps/reorganize-commits.step.yml +28 -0
  26. data/.ace-defaults/assign/catalog/steps/research.step.yml +19 -0
  27. data/.ace-defaults/assign/catalog/steps/review-pr.step.yml +22 -0
  28. data/.ace-defaults/assign/catalog/steps/security-audit.step.yml +22 -0
  29. data/.ace-defaults/assign/catalog/steps/split-subtree-root.step.yml +25 -0
  30. data/.ace-defaults/assign/catalog/steps/squash-changelog.step.yml +28 -0
  31. data/.ace-defaults/assign/catalog/steps/task-load.step.yml +29 -0
  32. data/.ace-defaults/assign/catalog/steps/update-docs.step.yml +38 -0
  33. data/.ace-defaults/assign/catalog/steps/update-pr-desc.step.yml +28 -0
  34. data/.ace-defaults/assign/catalog/steps/verify-e2e.step.yml +42 -0
  35. data/.ace-defaults/assign/catalog/steps/verify-test-suite.step.yml +48 -0
  36. data/.ace-defaults/assign/catalog/steps/verify-test.step.yml +36 -0
  37. data/.ace-defaults/assign/catalog/steps/work-on-task.step.yml +23 -0
  38. data/.ace-defaults/assign/config.yml +48 -0
  39. data/.ace-defaults/assign/presets/fix-bug.yml +65 -0
  40. data/.ace-defaults/assign/presets/quick-implement.yml +41 -0
  41. data/.ace-defaults/assign/presets/release-only.yml +35 -0
  42. data/.ace-defaults/assign/presets/work-on-docs.yml +41 -0
  43. data/.ace-defaults/assign/presets/work-on-task.yml +179 -0
  44. data/.ace-defaults/nav/protocols/skill-sources/ace-assign.yml +19 -0
  45. data/.ace-defaults/nav/protocols/wfi-sources/ace-assign.yml +19 -0
  46. data/CHANGELOG.md +1415 -0
  47. data/README.md +87 -0
  48. data/Rakefile +16 -0
  49. data/docs/exit-codes.md +61 -0
  50. data/docs/getting-started.md +121 -0
  51. data/docs/handbook.md +40 -0
  52. data/docs/usage.md +224 -0
  53. data/exe/ace-assign +16 -0
  54. data/handbook/guides/fork-context.g.md +231 -0
  55. data/handbook/skills/as-assign-compose/SKILL.md +24 -0
  56. data/handbook/skills/as-assign-create/SKILL.md +23 -0
  57. data/handbook/skills/as-assign-drive/SKILL.md +24 -0
  58. data/handbook/skills/as-assign-prepare/SKILL.md +23 -0
  59. data/handbook/skills/as-assign-recover-fork/SKILL.md +22 -0
  60. data/handbook/skills/as-assign-run-in-batches/SKILL.md +23 -0
  61. data/handbook/skills/as-assign-start/SKILL.md +25 -0
  62. data/handbook/workflow-instructions/assign/compose.wf.md +256 -0
  63. data/handbook/workflow-instructions/assign/create.wf.md +215 -0
  64. data/handbook/workflow-instructions/assign/drive.wf.md +666 -0
  65. data/handbook/workflow-instructions/assign/prepare.wf.md +469 -0
  66. data/handbook/workflow-instructions/assign/recover-fork.wf.md +233 -0
  67. data/handbook/workflow-instructions/assign/run-in-batches.wf.md +212 -0
  68. data/handbook/workflow-instructions/assign/start.wf.md +46 -0
  69. data/lib/ace/assign/atoms/assign_frontmatter_parser.rb +173 -0
  70. data/lib/ace/assign/atoms/catalog_loader.rb +101 -0
  71. data/lib/ace/assign/atoms/composition_rules.rb +219 -0
  72. data/lib/ace/assign/atoms/number_generator.rb +110 -0
  73. data/lib/ace/assign/atoms/preset_expander.rb +277 -0
  74. data/lib/ace/assign/atoms/step_file_parser.rb +207 -0
  75. data/lib/ace/assign/atoms/step_numbering.rb +227 -0
  76. data/lib/ace/assign/atoms/step_sorter.rb +66 -0
  77. data/lib/ace/assign/atoms/tree_formatter.rb +106 -0
  78. data/lib/ace/assign/cli/commands/add.rb +102 -0
  79. data/lib/ace/assign/cli/commands/assignment_target.rb +55 -0
  80. data/lib/ace/assign/cli/commands/create.rb +63 -0
  81. data/lib/ace/assign/cli/commands/fail.rb +43 -0
  82. data/lib/ace/assign/cli/commands/finish.rb +88 -0
  83. data/lib/ace/assign/cli/commands/fork_run.rb +229 -0
  84. data/lib/ace/assign/cli/commands/list.rb +166 -0
  85. data/lib/ace/assign/cli/commands/retry_cmd.rb +42 -0
  86. data/lib/ace/assign/cli/commands/select.rb +45 -0
  87. data/lib/ace/assign/cli/commands/start.rb +40 -0
  88. data/lib/ace/assign/cli/commands/status.rb +407 -0
  89. data/lib/ace/assign/cli.rb +144 -0
  90. data/lib/ace/assign/models/assignment.rb +107 -0
  91. data/lib/ace/assign/models/assignment_info.rb +66 -0
  92. data/lib/ace/assign/models/queue_state.rb +326 -0
  93. data/lib/ace/assign/models/step.rb +197 -0
  94. data/lib/ace/assign/molecules/assignment_discoverer.rb +57 -0
  95. data/lib/ace/assign/molecules/assignment_manager.rb +276 -0
  96. data/lib/ace/assign/molecules/fork_session_launcher.rb +102 -0
  97. data/lib/ace/assign/molecules/queue_scanner.rb +130 -0
  98. data/lib/ace/assign/molecules/skill_assign_source_resolver.rb +376 -0
  99. data/lib/ace/assign/molecules/step_renumberer.rb +227 -0
  100. data/lib/ace/assign/molecules/step_writer.rb +246 -0
  101. data/lib/ace/assign/organisms/assignment_executor.rb +1299 -0
  102. data/lib/ace/assign/version.rb +7 -0
  103. data/lib/ace/assign.rb +141 -0
  104. metadata +289 -0
@@ -0,0 +1,17 @@
1
+ name: plan-task
2
+ skill: as-task-plan
3
+ description: Analyze task requirements and create an implementation plan
4
+
5
+ produces: [implementation-plan]
6
+ consumes: [project-base-context, task-spec]
7
+
8
+ context:
9
+ default: fork
10
+ reason: "Planning benefits from focused exploration"
11
+
12
+ when_to_skip:
13
+ - "Task is trivial and doesn't need a plan"
14
+ - "Implementation plan already exists"
15
+
16
+ effort: light
17
+ tags: [planning, analysis]
@@ -0,0 +1,34 @@
1
+ name: pre-commit-review
2
+ skill: null
3
+ description: Run /review agent command (conversation slash command, not bash) when supported; fall back to ace-lint
4
+
5
+ prerequisites:
6
+ - name: work-on-task
7
+ strength: required
8
+ reason: "Review should inspect current implementation diff before verification/release"
9
+
10
+ produces: [pre-commit-review-findings]
11
+ consumes: [code-changes]
12
+
13
+ context:
14
+ default: null
15
+ reason: "Native review execution depends on the current agent/client context"
16
+
17
+ when_to_skip:
18
+ - "subtree.pre_commit_review is false"
19
+ - "No changed files are present in the subtree diff"
20
+ - "Detected client is not in subtree.native_review_clients"
21
+
22
+ effort: light
23
+ tags: [review, quality, pre-commit, subtree]
24
+
25
+ steps:
26
+ - name: resolve-review-path
27
+ description: "Resolve review mode from subtree config and detect active client/provider"
28
+ - name: run-native-review
29
+ description: "Review uncommitted changes and find issues using the /review agent slash command (NOT a bash command)"
30
+ - name: summarize-findings
31
+ description: "Present findings summary and preserve raw output when structure is incomplete"
32
+ - name: enforce-blocking
33
+ description: "If pre_commit_review_block is true and critical findings are confidently detected, block downstream release"
34
+ conditional: "subtree.pre_commit_review_block is true"
@@ -0,0 +1,28 @@
1
+ name: push-to-remote
2
+ skill: null
3
+ description: Push all changes to the remote repository
4
+ intent:
5
+ phrases:
6
+ - "push to remote"
7
+ - "push branch"
8
+ - "publish branch"
9
+ - "push changes"
10
+
11
+ prerequisites:
12
+ - name: work-on-task
13
+ strength: required
14
+ reason: "Must have commits to push"
15
+
16
+ produces: [remote-sync]
17
+ consumes: [commits]
18
+
19
+ context:
20
+ default: null
21
+ reason: "Push needs access to git state in main context"
22
+
23
+ when_to_skip:
24
+ - "Remote is already up to date"
25
+ - "Working in local-only mode"
26
+
27
+ effort: trivial
28
+ tags: [git, publishing, remote]
@@ -0,0 +1,28 @@
1
+ name: rebase-with-main
2
+ skill: as-git-rebase
3
+ description: Rebase current branch onto origin/main while preserving changelog intent
4
+ intent:
5
+ phrases:
6
+ - "rebase with main"
7
+ - "rebase with origin main"
8
+ - "rebase onto main"
9
+ - "sync with main"
10
+
11
+ prerequisites:
12
+ - name: work-on-task
13
+ strength: recommended
14
+ reason: "Rebase is typically done after local work is ready"
15
+
16
+ produces: [rebased-history]
17
+ consumes: [commits, remote-main]
18
+
19
+ context:
20
+ default: null
21
+ reason: "Rebase rewrites local git history and must run in main context"
22
+
23
+ when_to_skip:
24
+ - "Branch already contains latest origin/main"
25
+ - "Repository policy forbids rebasing this branch"
26
+
27
+ effort: light
28
+ tags: [git, history, rebase]
@@ -0,0 +1,57 @@
1
+ name: reflect-and-refactor
2
+ skill: null # No dedicated skill — the driving agent follows the steps directly, using ace-review and ace-git-commit as tools
3
+ description: Analyze implementation against ATOM principles and execute targeted refactoring before PR creation
4
+
5
+ prerequisites:
6
+ - name: work-on-task
7
+ strength: required
8
+ reason: "Must have implementation to reflect on"
9
+ - name: verify-test-suite
10
+ strength: required
11
+ reason: "Tests must pass before reflection — refactoring a broken build wastes effort"
12
+
13
+ produces: [refactoring-commits, findings-report]
14
+ consumes: [code-changes, test-results]
15
+
16
+ context:
17
+ default: null # Inherits from assignment-level context (typically inline, not forked)
18
+ reason: "Reflection needs access to full diff and project context"
19
+
20
+ when_to_skip:
21
+ - "Assignment was trivial (e.g., docs-only, config change)"
22
+ - "No substantive code changes to analyze"
23
+ - "Explicitly skipped in assignment configuration"
24
+
25
+ effort: light
26
+ tags: [quality, architecture, reflection]
27
+
28
+ steps:
29
+ - name: demo-validate
30
+ optional: true
31
+ description: "Run functional demo proving the feature works end-to-end"
32
+ skip_when: "verify-test-suite already covers functional validation (E2E tests exist and passed)"
33
+ on_failure: "Trigger re-plan mechanism instead of proceeding to analysis"
34
+
35
+ - name: analyze
36
+ description: "Review diff using architecture-reflection ace-review preset"
37
+ tool: "ace-review --preset architecture-reflection"
38
+
39
+ - name: decide
40
+ description: "Produce findings report categorizing items as refactor/accept/skip"
41
+
42
+ - name: refactor
43
+ description: "Execute bounded refactoring based on findings (single iteration, capped scope)"
44
+ constraints:
45
+ max_iterations: 1
46
+ scope: "Only items categorized as 'refactor' in findings report"
47
+
48
+ - name: commit
49
+ description: "Commit refactoring changes separately from implementation commits"
50
+ tool: "ace-git-commit"
51
+
52
+ replan:
53
+ trigger: "Demo validation failure OR architecture analysis finds structural misalignment"
54
+ distinguished_from: "fix-tests handles test failures; re-plan handles architectural rework"
55
+ max_reruns: 1
56
+ max_subtasks: 2
57
+ after_replan: "Follow-up sub-tasks execute, then reflect-and-refactor runs once more (no further re-plan)"
@@ -0,0 +1,23 @@
1
+ name: release-minor
2
+ description: Release modified packages and update CHANGELOGs following semver
3
+
4
+ prerequisites:
5
+ - name: verify-test
6
+ strength: recommended
7
+ reason: "Verify changes are stable before releasing subtree output"
8
+
9
+ produces: [version-bump, changelog-entries, commits]
10
+ consumes: [code-changes]
11
+
12
+ context:
13
+ default: null
14
+ reason: "Version bump needs access to git state and changelog/version files"
15
+
16
+ when_to_skip:
17
+ - "No version-worthy changes since last release"
18
+ - "Release is handled externally"
19
+
20
+ workflow: wfi://release/publish
21
+
22
+ effort: light
23
+ tags: [git, versioning, release]
@@ -0,0 +1,23 @@
1
+ name: release
2
+ description: Release modified packages and update CHANGELOGs following semver
3
+
4
+ prerequisites:
5
+ - name: work-on-task
6
+ strength: recommended
7
+ reason: "Should have code changes before releasing"
8
+
9
+ produces: [version-bump, changelog-entries, commits]
10
+ consumes: [code-changes]
11
+
12
+ context:
13
+ default: null
14
+ reason: "Version bump needs access to git state and version.rb in main context"
15
+
16
+ when_to_skip:
17
+ - "No version-worthy changes since last release"
18
+ - "Release is handled externally"
19
+
20
+ workflow: wfi://release/publish
21
+
22
+ effort: light
23
+ tags: [git, versioning, release]
@@ -0,0 +1,28 @@
1
+ name: reorganize-commits
2
+ skill: as-git-reorganize-commits
3
+ description: Reorganize commits into logical groups for clean history
4
+ intent:
5
+ phrases:
6
+ - "reorganize commits"
7
+ - "clean up commits"
8
+ - "rewrite commit history"
9
+ - "tidy commit history"
10
+
11
+ prerequisites:
12
+ - name: work-on-task
13
+ strength: required
14
+ reason: "Must have commits to reorganize"
15
+
16
+ produces: [clean-history]
17
+ consumes: [commits]
18
+
19
+ context:
20
+ default: null
21
+ reason: "Reorganizing rewrites git history in main context"
22
+
23
+ when_to_skip:
24
+ - "Only one commit on branch"
25
+ - "History is already clean and logical"
26
+
27
+ effort: light
28
+ tags: [git, history, cleanup]
@@ -0,0 +1,19 @@
1
+ name: research
2
+ skill: as-search-research
3
+ description: Research a topic, codebase pattern, or external documentation
4
+
5
+ prerequisites: []
6
+
7
+ produces: [research-findings]
8
+ consumes: []
9
+
10
+ context:
11
+ default: fork
12
+ reason: "Research benefits from focused exploration without side effects"
13
+
14
+ when_to_skip:
15
+ - "Topic is already well understood"
16
+ - "Research was completed in a previous assignment"
17
+
18
+ effort: medium
19
+ tags: [analysis, exploration]
@@ -0,0 +1,22 @@
1
+ name: review-pr
2
+ skill: as-review-pr
3
+ description: Review code changes for correctness, style, and best practices
4
+
5
+ prerequisites:
6
+ - name: create-pr
7
+ strength: required
8
+ reason: "Must have a PR to review"
9
+
10
+ produces: [review-feedback]
11
+ consumes: [pull-request]
12
+
13
+ context:
14
+ default: fork
15
+ reason: "Review benefits from isolated analysis without implementation bias"
16
+
17
+ when_to_skip:
18
+ - "No code changes since last review"
19
+ - "Changes are trivial (typo fix, config update)"
20
+
21
+ effort: medium
22
+ tags: [review, quality]
@@ -0,0 +1,22 @@
1
+ name: security-audit
2
+ skill: null
3
+ description: Review changes for security vulnerabilities and sensitive data exposure
4
+
5
+ prerequisites:
6
+ - name: work-on-task
7
+ strength: required
8
+ reason: "Must have code changes to audit"
9
+
10
+ produces: [security-report]
11
+ consumes: [code-changes]
12
+
13
+ context:
14
+ default: fork
15
+ reason: "Security review benefits from isolated, focused analysis"
16
+
17
+ when_to_skip:
18
+ - "Changes don't touch security-sensitive code"
19
+ - "Changes are purely cosmetic (docs, comments)"
20
+
21
+ effort: medium
22
+ tags: [security, review, quality]
@@ -0,0 +1,25 @@
1
+ name: split-subtree-root
2
+ description: Orchestrate subtree delegation and execution for split parent steps
3
+
4
+ instructions:
5
+ common:
6
+ - "Subtree root orchestrator step."
7
+ - "This step is orchestration-only."
8
+ - "Do not execute the parent workflow directly in this parent step."
9
+ - "Child steps: {{sub_steps}}."
10
+ - "If subtree execution fails: use adaptive minimal-safe replay (do not replay whole subtree by default)."
11
+ - "Inject only required recovery steps before retrying failed or affected steps."
12
+ fork:
13
+ - "Delegate this subtree into forked context:"
14
+ - "- ace-assign fork-run --assignment <assignment-id>@{{parent_number}}"
15
+ - "Inside the forked agent, continue execution within this subtree scope only."
16
+ - "Note: fork-run may take 10-30 minutes. If your environment has bash timeout limits, run in background and poll scoped status with stepped backoff (5m -> 3m -> 1m -> every 60s)."
17
+ - "After fork-run completes: read all subtree report files before continuing. The driver is the guard — review reports to verify quality before advancing."
18
+ - "For failed subtrees: recovery typically includes context refresh (onboard + report review) and verify-test-suite before retry."
19
+ inline:
20
+ - "Execute only child steps under this node."
21
+
22
+ goal_header: "Goal to satisfy through child steps:"
23
+
24
+ effort: low
25
+ tags: [orchestration, fork, split-step]
@@ -0,0 +1,28 @@
1
+ name: squash-changelog
2
+ skill: as-docs-squash-changelog
3
+ description: Squash multiple changelog entries into one before merge
4
+ intent:
5
+ phrases:
6
+ - "squash changelog"
7
+ - "squash changelog entries"
8
+ - "consolidate changelog"
9
+ - "merge changelog entries"
10
+
11
+ prerequisites:
12
+ - name: release
13
+ strength: recommended
14
+ reason: "Most useful after release notes have been generated"
15
+
16
+ produces: [changelog-entries]
17
+ consumes: [changelog-entries]
18
+
19
+ context:
20
+ default: null
21
+ reason: "Changelog edits and git staging happen in main context"
22
+
23
+ when_to_skip:
24
+ - "There is only one relevant changelog entry"
25
+ - "Changelog has already been consolidated for this branch"
26
+
27
+ effort: trivial
28
+ tags: [docs, changelog, release]
@@ -0,0 +1,29 @@
1
+ name: task-load
2
+ skill: null
3
+ description: "Load task behavioral spec: run `ace-bundle task://<taskref>`"
4
+
5
+ prerequisites:
6
+ - name: onboard-base
7
+ strength: recommended
8
+ reason: "Needs project context for task interpretation"
9
+
10
+ produces: [task-spec]
11
+ consumes: [project-base-context]
12
+
13
+ context:
14
+ default: null
15
+ reason: "Task loading needs access to the main conversation context"
16
+
17
+ instructions: |
18
+ Load task behavioral spec: run `ace-bundle task://{{taskref}}`
19
+
20
+ **Dependency context**: If the task spec has a `dependencies` field listing other task refs:
21
+ 1. For each dependency ref, run `ace-bundle task://<dep-ref>` to load the completed sibling's spec
22
+ 2. Read any work-on-task and plan-task reports for the dependency's subtree from `.ace-local/assign/` reports directory
23
+ 3. This context is critical for planning — it reveals what was already implemented and what to build upon
24
+
25
+ when_to_skip:
26
+ - "Task spec already loaded in context"
27
+
28
+ effort: light
29
+ tags: [setup, context-loading, task]
@@ -0,0 +1,38 @@
1
+ name: update-docs
2
+ skill: as-docs-update
3
+ description: Update public-facing documentation when CLI contracts or public APIs change
4
+
5
+ prerequisites:
6
+ - name: work-on-task
7
+ strength: required
8
+ reason: "Must know what changed to update docs accurately"
9
+ - name: release
10
+ strength: recommended
11
+ reason: "Version number should be known before updating docs"
12
+
13
+ produces: [updated-docs]
14
+ consumes: [code-changes]
15
+
16
+ context:
17
+ default: null
18
+ reason: "Documentation updates run inline (lightweight, no fork needed)"
19
+
20
+ when_to_skip:
21
+ - "No public CLI contract changes (internal refactoring, private methods only)"
22
+ - "Documentation was already updated as part of work-on-task"
23
+ - "Task is documentation-only (no new code changes to document)"
24
+
25
+ effort: light
26
+ tags: [documentation, quality]
27
+
28
+ steps:
29
+ - name: identify-scope
30
+ description: "Identify which packages had CLI/API contract changes by reviewing the diff"
31
+
32
+ - name: update-usage-docs
33
+ description: "Run /as-docs-update-usage for each affected package"
34
+ tool: "ace-docs-update-usage <package>"
35
+
36
+ - name: verify-docs
37
+ description: "Run ace-docs validate on updated files to confirm format is correct"
38
+ tool: "ace-docs validate <files>"
@@ -0,0 +1,28 @@
1
+ name: update-pr-desc
2
+ skill: as-github-pr-update
3
+ description: Update PR description with implementation summary and final state
4
+ intent:
5
+ phrases:
6
+ - "update pr description"
7
+ - "update pull request description"
8
+ - "refresh pr description"
9
+ - "sync pr description"
10
+
11
+ prerequisites:
12
+ - name: create-pr
13
+ strength: required
14
+ reason: "Must have an existing PR to update"
15
+
16
+ produces: [pr-description]
17
+ consumes: [pull-request, code-changes]
18
+
19
+ context:
20
+ default: null
21
+ reason: "Needs access to PR state and git history"
22
+
23
+ when_to_skip:
24
+ - "PR description is already up to date"
25
+ - "No changes since PR was created"
26
+
27
+ effort: trivial
28
+ tags: [git, pr, documentation]
@@ -0,0 +1,42 @@
1
+ name: verify-e2e
2
+ skill: as-e2e-review
3
+ render: step_template
4
+ description: Review E2E coverage for modified packages and run targeted scenarios
5
+
6
+ prerequisites:
7
+ - name: work-on-task
8
+ strength: required
9
+ reason: "Must have implementation to test"
10
+ - name: verify-test-suite
11
+ strength: recommended
12
+ reason: "Unit tests should pass before running E2E"
13
+
14
+ produces: [e2e-results, coverage-matrix]
15
+ consumes: [code-changes]
16
+
17
+ context:
18
+ default: null
19
+ reason: "E2E review and execution run in the project environment"
20
+
21
+ when_to_skip:
22
+ - "No public CLI API changes (internal-only refactoring)"
23
+ - "Package has no E2E test scenarios and no coverage gaps identified"
24
+ - "All modified files are docs-only (*.md, *.yml non-config, task specs, retros)"
25
+
26
+ effort: medium
27
+ tags: [testing, e2e, verification]
28
+
29
+ steps:
30
+ - name: review-coverage
31
+ description: "Run /as-e2e-review for each heavily modified package to get coverage matrix"
32
+ tool: "ace-e2e-review <package>"
33
+ note: "Identify gaps, overlaps, and which TCs need updating before running"
34
+
35
+ - name: update-if-needed
36
+ description: "If coverage matrix shows gaps or stale TCs, update or create E2E tests"
37
+ conditional: "coverage-matrix shows gaps or outdated TCs"
38
+
39
+ - name: run-targeted
40
+ description: "Run ace-test-e2e-suite for each heavily modified package (not full suite)"
41
+ tool: "ace-test-e2e-suite <package>"
42
+ note: "Pass package name(s) of heavily modified packages only"
@@ -0,0 +1,48 @@
1
+ name: verify-test-suite
2
+ skill: as-test-verify-suite
3
+ render: step_template
4
+ description: Run package test suites with profiling to verify correctness and performance
5
+ intent:
6
+ phrases:
7
+ - "run tests"
8
+ - "run test suite"
9
+ - "verify tests"
10
+ - "test changes"
11
+ - "check tests"
12
+
13
+ prerequisites:
14
+ - name: work-on-task
15
+ strength: recommended
16
+ reason: "Should have code changes to verify"
17
+
18
+ produces: [test-results]
19
+ consumes: [code-changes]
20
+
21
+ context:
22
+ default: null
23
+ reason: "Test execution needs access to project environment"
24
+
25
+ when_to_skip:
26
+ - "No code changes that could affect tests (documentation-only)"
27
+ - "Tests were already run and profiled in a previous step"
28
+
29
+ effort: light
30
+ tags: [testing, verification, performance]
31
+
32
+ steps:
33
+ - name: run-package-tests
34
+ description: "Run ace-test --profile 6 for each modified package"
35
+ tool: "ace-test --profile 6"
36
+ note: "Profile reveals slow tests; run per-package, not full monorepo"
37
+
38
+ - name: check-performance-budgets
39
+ description: "Verify no test exceeds documented thresholds"
40
+ note: "Atoms <50ms, molecules <100ms, integration <1s, full package <30s. Tests must not make real network calls or unnecessary filesystem I/O."
41
+
42
+ - name: fix-violations
43
+ description: "Stub I/O and mock external calls for tests exceeding budgets"
44
+ conditional: "performance violations detected"
45
+
46
+ - name: run-suite
47
+ description: "Run ace-test-suite to verify no cross-package regressions"
48
+ tool: "ace-test-suite"
@@ -0,0 +1,36 @@
1
+ name: verify-test
2
+ skill: null
3
+ description: Run profile-guided tests for modified packages only; no full-suite run in subtree
4
+
5
+ prerequisites:
6
+ - name: work-on-task
7
+ strength: required
8
+ reason: "Implementation should be complete before verification"
9
+
10
+ produces: [test-results]
11
+ consumes: [code-changes]
12
+
13
+ context:
14
+ default: null
15
+ reason: "Test execution needs access to the project working tree and package contexts"
16
+
17
+ when_to_skip:
18
+ - "No code changes in test-relevant files"
19
+ - "Tests were already profiled for the same subtree run"
20
+
21
+ effort: light
22
+ tags: [testing, verification, performance]
23
+
24
+ steps:
25
+ - name: run-package-tests
26
+ description: "Run ace-test --profile 6 for each modified package in this subtree"
27
+ tool: "ace-test --profile 6"
28
+ note: "Execute per-package; do not run full-stack suite here"
29
+
30
+ - name: check-performance-budgets
31
+ description: "Verify no test exceeds documented thresholds"
32
+ note: "Atoms <50ms, molecules <100ms, integration <1s, full package suite <30s. Tests must not make real network calls or unnecessary filesystem I/O."
33
+
34
+ - name: fix-violations
35
+ description: "Fix slow or environment-coupled tests when violations are detected"
36
+ conditional: "performance budgets are exceeded"
@@ -0,0 +1,23 @@
1
+ name: work-on-task
2
+ skill: as-task-work
3
+ description: Implement task changes following project conventions
4
+ intent:
5
+ phrases:
6
+ - "work on task"
7
+ - "implement task"
8
+ - "task work"
9
+ - "build feature"
10
+
11
+ produces: [code-changes, commits]
12
+ consumes: [project-base-context, task-spec]
13
+
14
+ context:
15
+ default: fork
16
+ reason: "Substantial implementation benefits from focused agent"
17
+
18
+ when_to_skip:
19
+ - "Task is documentation-only"
20
+ - "Changes are already implemented"
21
+
22
+ effort: medium
23
+ tags: [implementation, core-workflow]
@@ -0,0 +1,48 @@
1
+ # ace-assign default configuration
2
+ # Override in ~/.ace/assign/config.yml or .ace/assign/config.yml
3
+
4
+ # Directory where assignments are stored
5
+ cache_dir: ".ace-local/assign"
6
+
7
+ # Main step numbering step (gaps for injection)
8
+ step_increment: 10
9
+
10
+ # Sub-step numbering format
11
+ subtask_format: "%02d"
12
+
13
+ # Maximum sub-step depth (e.g., 010.01.01 = 3 levels)
14
+ max_subtask_depth: 3
15
+
16
+ # Additional skill metadata lookup roots (relative to project root unless absolute)
17
+ # Canonical sources come from protocol registrations in .ace-defaults/nav/protocols/skill-sources/*.yml.
18
+ skill_source_paths: []
19
+
20
+ # Workflow lookup roots (relative to project root unless absolute)
21
+ workflow_source_paths:
22
+ - "ace-task/handbook/workflow-instructions"
23
+ - "ace-assign/handbook/workflow-instructions"
24
+
25
+ # Fork execution defaults
26
+ execution:
27
+ provider: "claude:opus@yolo"
28
+ timeout: 1800
29
+
30
+ # Subtree execution behavior
31
+ subtree:
32
+ pre_commit_review: true
33
+ pre_commit_review_provider: "auto" # auto | native | skip
34
+ pre_commit_review_block: false
35
+ native_review_clients:
36
+ - "claude"
37
+ - "codex"
38
+
39
+ # Provider-level defaults for CLI invocation
40
+ providers:
41
+ cli:
42
+ - "claude"
43
+ - "claudeoai"
44
+ - "gemini"
45
+ - "codex"
46
+ - "codexoss"
47
+ - "opencode"
48
+ - "pi"