@rse/ase 1.0.7 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dst/ase-agent-definition-api.d.ts +184 -0
- package/dst/ase-agent-definition-api.js +6 -0
- package/dst/ase-agent-definition-builtin/condenser.js +42 -0
- package/dst/ase-agent-definition-builtin/editor.js +45 -0
- package/dst/ase-agent-definition-builtin/estimator.js +98 -0
- package/dst/ase-agent-definition-builtin/implementer.js +121 -0
- package/dst/ase-agent-definition-builtin/integrator.js +56 -0
- package/dst/ase-agent-definition-builtin/qualifier.js +61 -0
- package/dst/ase-agent-definition-builtin/rebooter.js +41 -0
- package/dst/ase-agent-definition-builtin/researcher.js +77 -0
- package/dst/ase-agent-definition-core.js +827 -0
- package/dst/ase-agent-fleet.js +772 -0
- package/dst/ase-agent-process.js +232 -0
- package/dst/ase-agent-relay-client.js +509 -0
- package/dst/ase-agent-relay-core.js +213 -0
- package/dst/ase-agent-relay-server-bind.js +242 -0
- package/dst/ase-agent-relay-server-cli.js +50 -0
- package/dst/ase-agent-runtime-claim.js +189 -0
- package/dst/ase-agent-runtime-engine.js +1100 -0
- package/dst/ase-agent-runtime-exec.js +275 -0
- package/dst/ase-agent-runtime-phase.js +581 -0
- package/dst/ase-agent-runtime-request.js +272 -0
- package/dst/ase-agent-runtime-tool.js +207 -0
- package/dst/ase-agent-runtime.js +1316 -0
- package/dst/ase-agent.js +65 -0
- package/dst/ase-artifact.js +6 -5
- package/dst/ase-config-core.js +465 -0
- package/dst/ase-config-schema.js +357 -0
- package/dst/ase-config-scope.js +172 -0
- package/dst/ase-config.js +25 -585
- package/dst/ase-hook.js +228 -111
- package/dst/ase-lib-daemon-cli.js +130 -0
- package/dst/ase-lib-hash.js +20 -0
- package/dst/{ase-log.js → ase-lib-log.js} +40 -7
- package/dst/ase-lib-server-bind.js +115 -0
- package/dst/ase-lib-server-cli.js +474 -0
- package/dst/{ase-table.js → ase-lib-table.js} +1 -1
- package/dst/{ase-version.js → ase-lib-version.js} +8 -1
- package/dst/ase-man.js +96 -0
- package/dst/ase-mcp.js +166 -13
- package/dst/{ase-getopt.js → ase-service-getopt.js} +82 -80
- package/dst/{ase-markdown.js → ase-service-markdown.js} +18 -11
- package/dst/ase-service-otel.js +1246 -0
- package/dst/{ase-skills.js → ase-service-skills.js} +29 -64
- package/dst/ase-service-state.js +101 -0
- package/dst/ase-service.js +269 -81
- package/dst/ase-setup-common.js +141 -0
- package/dst/ase-setup-mcp.js +359 -0
- package/dst/ase-setup-settings.js +837 -0
- package/dst/ase-setup.js +113 -869
- package/dst/ase-spec.js +31 -19
- package/dst/ase-statusline.js +108 -43
- package/dst/ase-task-board-core.js +739 -0
- package/dst/ase-task-board-filter.js +127 -0
- package/dst/ase-task-board-flow.js +237 -0
- package/dst/ase-task-board-graph.js +497 -0
- package/dst/ase-task-board-stats.js +263 -0
- package/dst/ase-task-board-tui-control.js +775 -0
- package/dst/ase-task-board-tui-model.js +1008 -0
- package/dst/ase-task-board-tui-popup.js +626 -0
- package/dst/ase-task-board-tui-style.js +106 -0
- package/dst/ase-task-board-tui-view.js +847 -0
- package/dst/ase-task-board-tui.js +189 -0
- package/dst/ase-task-board-web-client.css +1 -0
- package/dst/ase-task-board-web-client.html +20 -0
- package/dst/ase-task-board-web-client.js +81 -0
- package/dst/ase-task-board-web-server.js +823 -0
- package/dst/ase-task-board.js +134 -0
- package/dst/ase-task-format.js +757 -0
- package/dst/ase-task-request.js +208 -0
- package/dst/ase-task-store-client.js +495 -0
- package/dst/ase-task-store-core.js +804 -0
- package/dst/ase-task-store-issues.js +237 -0
- package/dst/ase-task-store-plugin-api.js +6 -0
- package/dst/ase-task-store-plugin-ase.js +484 -0
- package/dst/ase-task-store-plugin-delegate.js +137 -0
- package/dst/ase-task-store-plugin-gitea.js +666 -0
- package/dst/ase-task-store-plugin-github.js +696 -0
- package/dst/ase-task-store-plugin-gitlab.js +668 -0
- package/dst/ase-task-store-server-bind.js +538 -0
- package/dst/ase-task-store-server-cli.js +154 -0
- package/dst/ase-task.js +1335 -357
- package/dst/{ase-compat.js → ase-util-compat.js} +2 -2
- package/dst/{ase-diagram.js → ase-util-diagram.js} +107 -32
- package/dst/{ase-meta.js → ase-util-meta.js} +2 -2
- package/dst/{ase-metric.js → ase-util-metric.js} +2 -2
- package/dst/{ase-mint.js → ase-util-mint.js} +19 -12
- package/dst/{ase-worktree.js → ase-util-worktree.js} +30 -19
- package/dst/ase-util.js +20 -0
- package/dst/ase.js +108 -32
- package/dst/man/ase-agent-adhoc.1 +515 -0
- package/dst/man/ase-agent-condenser.1 +193 -0
- package/dst/man/ase-agent-editor.1 +212 -0
- package/dst/man/ase-agent-estimator.1 +214 -0
- package/dst/man/ase-agent-fleet.1 +185 -0
- package/dst/man/ase-agent-implementer.1 +233 -0
- package/dst/man/ase-agent-integrator.1 +213 -0
- package/dst/man/ase-agent-qualifier.1 +214 -0
- package/dst/man/ase-agent-rebooter.1 +193 -0
- package/dst/man/ase-agent-relay.1 +128 -0
- package/dst/man/ase-agent-researcher.1 +217 -0
- package/dst/man/ase-agent.1 +264 -0
- package/dst/man/ase-artifact-list.1 +38 -0
- package/dst/man/ase-artifact-name.1 +39 -0
- package/dst/man/ase-artifact.1 +56 -0
- package/dst/man/ase-config-delete.1 +45 -0
- package/dst/man/ase-config-edit.1 +48 -0
- package/dst/man/ase-config-get.1 +46 -0
- package/dst/man/ase-config-init.1 +60 -0
- package/dst/man/ase-config-list.1 +42 -0
- package/dst/man/ase-config-set.1 +52 -0
- package/dst/man/ase-config.1 +231 -0
- package/dst/man/ase-hook-permission-request.1 +36 -0
- package/dst/man/ase-hook-pre-tool-use.1 +59 -0
- package/dst/man/ase-hook-session-end.1 +47 -0
- package/dst/man/ase-hook-session-persona.1 +37 -0
- package/dst/man/ase-hook-session-start.1 +81 -0
- package/dst/man/ase-hook-stop.1 +34 -0
- package/dst/man/ase-hook-user-prompt-submit.1 +34 -0
- package/dst/man/ase-hook.1 +51 -0
- package/dst/man/ase-man.1 +67 -0
- package/dst/man/ase-mcp.1 +61 -0
- package/dst/man/ase-service-log.1 +43 -0
- package/dst/man/ase-service-send.1 +47 -0
- package/dst/man/ase-service-start.1 +54 -0
- package/dst/man/ase-service-status.1 +46 -0
- package/dst/man/ase-service-stop.1 +37 -0
- package/dst/man/ase-service.1 +85 -0
- package/dst/man/ase-setup-disable.1 +44 -0
- package/dst/man/ase-setup-enable.1 +45 -0
- package/dst/man/ase-setup-install.1 +73 -0
- package/dst/man/ase-setup-mcp.1 +124 -0
- package/dst/man/ase-setup-status.1 +60 -0
- package/dst/man/ase-setup-statusline.1 +92 -0
- package/dst/man/ase-setup-telemetry.1 +92 -0
- package/dst/man/ase-setup-uninstall.1 +59 -0
- package/dst/man/ase-setup-update.1 +64 -0
- package/dst/man/ase-setup.1 +93 -0
- package/dst/man/ase-spec-export.1 +62 -0
- package/dst/man/ase-spec-lint.1 +40 -0
- package/dst/man/ase-spec-preview.1 +40 -0
- package/dst/man/ase-spec.1 +46 -0
- package/dst/man/ase-statusline.1 +189 -0
- package/dst/man/ase-task-assign.1 +71 -0
- package/dst/man/ase-task-board.1 +384 -0
- package/dst/man/ase-task-delete.1 +35 -0
- package/dst/man/ase-task-edit.1 +46 -0
- package/dst/man/ase-task-idscheme.1 +65 -0
- package/dst/man/ase-task-lifecycle.1 +57 -0
- package/dst/man/ase-task-list.1 +47 -0
- package/dst/man/ase-task-load.1 +36 -0
- package/dst/man/ase-task-newid.1 +61 -0
- package/dst/man/ase-task-purge.1 +37 -0
- package/dst/man/ase-task-rename.1 +44 -0
- package/dst/man/ase-task-request.1 +61 -0
- package/dst/man/ase-task-save.1 +48 -0
- package/dst/man/ase-task-status.1 +55 -0
- package/dst/man/ase-task-store.1 +194 -0
- package/dst/man/ase-task-view.1 +40 -0
- package/dst/man/ase-task.1 +160 -0
- package/dst/man/ase-util-compat.1 +25 -0
- package/dst/man/ase-util-diagram.1 +76 -0
- package/dst/man/ase-util-meta.1 +45 -0
- package/dst/man/ase-util-metric.1 +54 -0
- package/dst/man/ase-util-mint.1 +59 -0
- package/dst/man/ase-util-worktree.1 +72 -0
- package/dst/man/ase-util.1 +50 -0
- package/dst/man/ase.1 +124 -0
- package/package.json +81 -21
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.github/plugin/plugin.json +1 -1
- package/plugin/agents/ase-meta-diagram.md +12 -8
- package/plugin/agents/ase-repo-review.md +322 -0
- package/plugin/hooks/hooks-codex.json +5 -0
- package/plugin/hooks/hooks-copilot.json +5 -0
- package/plugin/hooks/hooks.json +8 -0
- package/plugin/meta/ase-common-approach.md +117 -0
- package/plugin/meta/ase-common-changeset.md +256 -0
- package/plugin/meta/ase-common-code.md +10 -173
- package/plugin/meta/ase-common-grill.md +317 -0
- package/plugin/meta/ase-common-resolve.md +305 -0
- package/plugin/meta/ase-common-task.md +83 -4
- package/plugin/meta/ase-constitution.md +0 -2
- package/plugin/meta/ase-format-specbook.md +208 -25
- package/plugin/meta/ase-format-specbook.yaml +242 -851
- package/plugin/meta/ase-format-task.md +669 -125
- package/plugin/meta/ase-persona.md +3 -4
- package/plugin/meta/ase-skill.md +9 -0
- package/plugin/mods/ase-mods.ts +409 -0
- package/plugin/mods/claude-code.d.ts +13417 -0
- package/plugin/skills/ase-arch-analyze/SKILL.md +1 -1
- package/plugin/skills/ase-arch-analyze/help.md +2 -2
- package/plugin/skills/ase-code-analyze/SKILL.md +59 -8
- package/plugin/skills/ase-code-analyze/help.md +29 -4
- package/plugin/skills/ase-code-edit/SKILL.md +107 -181
- package/plugin/skills/ase-code-edit/help.md +118 -31
- package/plugin/skills/ase-code-lint/SKILL.md +64 -13
- package/plugin/skills/ase-code-lint/help.md +32 -2
- package/plugin/skills/ase-docs-proofread/SKILL.md +4 -4
- package/plugin/skills/ase-docs-proofread/help.md +1 -1
- package/plugin/skills/ase-docs-refine/SKILL.md +4 -4
- package/plugin/skills/ase-docs-shorten/SKILL.md +4 -4
- package/plugin/skills/ase-help-intent/data.md +2164 -1087
- package/plugin/skills/ase-help-intent/help.md +1 -1
- package/plugin/skills/ase-help-skill/catalog.md +12 -9
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +1 -1
- package/plugin/skills/ase-meta-config/SKILL.md +3 -4
- package/plugin/skills/ase-meta-config/help.md +31 -10
- package/plugin/skills/ase-meta-mint/SKILL.md +5 -5
- package/plugin/skills/ase-meta-mint/help.md +10 -5
- package/plugin/skills/ase-meta-why/help.md +1 -1
- package/plugin/skills/ase-meta-workflow/SKILL.md +7 -7
- package/plugin/skills/ase-meta-workflow/help.md +4 -4
- package/plugin/skills/ase-meta-workflow/sample.md +3 -3
- package/plugin/skills/ase-meta-workflow/workflow.txt +22 -18
- package/plugin/skills/{ase-meta-changelog → ase-repo-changelog}/SKILL.md +4 -3
- package/plugin/skills/{ase-meta-changelog → ase-repo-changelog}/help.md +5 -5
- package/plugin/skills/{ase-meta-commit → ase-repo-commit}/SKILL.md +6 -6
- package/plugin/skills/{ase-meta-commit → ase-repo-commit}/help.md +5 -5
- package/plugin/skills/{ase-meta-diff → ase-repo-diff}/SKILL.md +6 -6
- package/plugin/skills/{ase-meta-diff → ase-repo-diff}/help.md +8 -8
- package/plugin/skills/{ase-code-dissect → ase-repo-dissect}/SKILL.md +19 -19
- package/plugin/skills/{ase-code-dissect → ase-repo-dissect}/help.md +10 -12
- package/plugin/skills/ase-repo-merge/SKILL.md +346 -0
- package/plugin/skills/ase-repo-merge/help.md +107 -0
- package/plugin/skills/ase-repo-resolve/SKILL.md +158 -0
- package/plugin/skills/ase-repo-resolve/help.md +102 -0
- package/plugin/skills/ase-repo-review/SKILL.md +406 -0
- package/plugin/skills/ase-repo-review/help.md +181 -0
- package/plugin/skills/ase-spec-edit/SKILL.md +117 -183
- package/plugin/skills/ase-spec-edit/help.md +107 -26
- package/plugin/skills/ase-sync-reconcile/help.md +1 -1
- package/plugin/skills/ase-task-assign/SKILL.md +111 -0
- package/plugin/skills/ase-task-assign/help.md +119 -0
- package/plugin/skills/ase-task-condense/SKILL.md +21 -21
- package/plugin/skills/ase-task-condense/help.md +12 -10
- package/plugin/skills/ase-task-delete/SKILL.md +1 -1
- package/plugin/skills/ase-task-dissect/SKILL.md +71 -48
- package/plugin/skills/ase-task-dissect/help.md +10 -9
- package/plugin/skills/ase-task-edit/SKILL.md +379 -94
- package/plugin/skills/ase-task-edit/help.md +95 -22
- package/plugin/skills/ase-task-estimate/SKILL.md +492 -0
- package/plugin/skills/ase-task-estimate/help.md +158 -0
- package/plugin/skills/ase-task-grill/SKILL.md +246 -138
- package/plugin/skills/ase-task-grill/help.md +129 -26
- package/plugin/skills/ase-task-id/SKILL.md +8 -1
- package/plugin/skills/ase-task-id/help.md +6 -3
- package/plugin/skills/ase-task-implement/SKILL.md +535 -145
- package/plugin/skills/ase-task-implement/help.md +138 -47
- package/plugin/skills/ase-task-integrate/SKILL.md +549 -0
- package/plugin/skills/ase-task-integrate/help.md +187 -0
- package/plugin/skills/ase-task-list/SKILL.md +55 -23
- package/plugin/skills/ase-task-list/help.md +45 -21
- package/plugin/skills/ase-task-reboot/SKILL.md +84 -43
- package/plugin/skills/ase-task-reboot/help.md +28 -8
- package/plugin/skills/ase-task-rename/SKILL.md +10 -2
- package/plugin/skills/ase-task-research/SKILL.md +386 -0
- package/plugin/skills/ase-task-research/help.md +102 -0
- package/plugin/skills/ase-task-status/SKILL.md +137 -0
- package/plugin/skills/ase-task-status/help.md +80 -0
- package/plugin/skills/ase-task-view/SKILL.md +49 -24
- package/plugin/skills/ase-task-view/help.md +19 -9
- package/plugin/agents/ase-meta-review.md +0 -187
- package/plugin/skills/ase-code-craft/SKILL.md +0 -264
- package/plugin/skills/ase-code-craft/help.md +0 -122
- package/plugin/skills/ase-code-refactor/SKILL.md +0 -232
- package/plugin/skills/ase-code-refactor/help.md +0 -109
- package/plugin/skills/ase-code-resolve/SKILL.md +0 -289
- package/plugin/skills/ase-code-resolve/help.md +0 -116
- package/plugin/skills/ase-meta-review/SKILL.md +0 -210
- package/plugin/skills/ase-meta-review/help.md +0 -96
- package/plugin/skills/ase-task-preflight/SKILL.md +0 -166
- package/plugin/skills/ase-task-preflight/help.md +0 -82
- /package/dst/{ase-ignore.js → ase-lib-ignore.js} +0 -0
- /package/dst/{ase-stdio.js → ase-lib-stdio.js} +0 -0
- /package/dst/{ase-kv.js → ase-service-kv.js} +0 -0
- /package/dst/{ase-sleep.js → ase-service-sleep.js} +0 -0
- /package/dst/{ase-timestamp.js → ase-service-timestamp.js} +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-task-integrate` - Integrate a Task Change Set
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-task-integrate`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
[`--next`|`-n` *option*[,...]]
|
|
11
|
+
[`--worktree`|`-w` *name*]
|
|
12
|
+
[`--changeset`|`-c` *changeset*]
|
|
13
|
+
[`--draft`|`-d`]
|
|
14
|
+
[`--target`|`-t` *target*]
|
|
15
|
+
[`--mode`|`-m` `merge`|`rebase`|`squash`]
|
|
16
|
+
[`--no-cleanup`|`-K`]
|
|
17
|
+
[`--stateless`|`-S`]
|
|
18
|
+
[*id*]
|
|
19
|
+
|
|
20
|
+
## DESCRIPTION
|
|
21
|
+
|
|
22
|
+
The `ase-task-integrate` skill delivers the *change set* of a task
|
|
23
|
+
plan, as created by `ase-task-implement`, from the plan's *changeset*
|
|
24
|
+
(the location of the change set) into the plan's *target* (the place
|
|
25
|
+
of integration). The integration itself is performed by the skill
|
|
26
|
+
`ase-repo-merge`, which commits still uncommitted changes of the
|
|
27
|
+
change set, merges them into the target branch (through a regular
|
|
28
|
+
merge, a rebase with fast-forward, or a squash merge, as selected via
|
|
29
|
+
`--mode`), resolves merge conflicts semantically, and reports the
|
|
30
|
+
verdict `MERGED`, `CONFLICT`, or `FAILED`.
|
|
31
|
+
|
|
32
|
+
The *changeset* is selected by the plan's `Changeset:` frontmatter
|
|
33
|
+
key (if absent, the configured default `project.task.default.changeset`),
|
|
34
|
+
overridable via `--changeset`:
|
|
35
|
+
|
|
36
|
+
- `worktree` (default): the uncommitted changes and the checked-out
|
|
37
|
+
branch of the context worktree. If it equals the target branch
|
|
38
|
+
(only possible without `--worktree`), the integration just commits
|
|
39
|
+
the uncommitted changes in place.
|
|
40
|
+
- `branch:`*name*: the existing branch *name*.
|
|
41
|
+
- `attachment:`*name*: the attachment block of type `text/x-diff;
|
|
42
|
+
charset=utf-8; kind="<name>"` of the plan, which is applied on a
|
|
43
|
+
*temporary* branch at the commit it is based on, so drift of the
|
|
44
|
+
target is resolved by the merge. A *stale* attachment -- one whose
|
|
45
|
+
`Modified:` key is absent or older than the `Modified:` key of the
|
|
46
|
+
plan frontmatter -- stops the skill with an error, and so does an
|
|
47
|
+
already *delivered* one -- one whose `Desc:` key carries the
|
|
48
|
+
`merged` marker of an earlier `--no-cleanup` integration.
|
|
49
|
+
- `attachment:draft`: the *implementation draft* of the plan, as
|
|
50
|
+
created by `ase-task-implement --draft`, selectable via the
|
|
51
|
+
`--draft` shorthand.
|
|
52
|
+
|
|
53
|
+
The skill does *not* maintain the *change set snapshot* of the plan
|
|
54
|
+
(the attachment block of type `text/x-diff; charset=utf-8;
|
|
55
|
+
kind="changeset"`), which only the `integrator` agent of `ase agent`
|
|
56
|
+
updates after a successful integration, but passes an existing one
|
|
57
|
+
through unchanged.
|
|
58
|
+
|
|
59
|
+
The *target* is selected by the plan's `Target:` frontmatter key
|
|
60
|
+
(if absent, the configured default `project.task.default.target`),
|
|
61
|
+
overridable via `--target`:
|
|
62
|
+
|
|
63
|
+
- `worktree`: the checked-out branch of the *origin* working copy,
|
|
64
|
+
i.e. the one the skill was started in (also with `--worktree`).
|
|
65
|
+
- `branch:`*name*: the existing branch *name*, which has to be
|
|
66
|
+
checked out in some worktree and to have no uncommitted changes.
|
|
67
|
+
- `source` (default): whatever the plan's `Source:` key refers to.
|
|
68
|
+
|
|
69
|
+
The skill stops with an error -- touching nothing -- if the change set
|
|
70
|
+
and the target are the same branch (except for the `worktree` changeset
|
|
71
|
+
of the origin working copy, which just commits in place, see above), or
|
|
72
|
+
if the change set carries neither commits beyond the target nor
|
|
73
|
+
uncommitted changes. Likewise, a merge which leaves the content of the
|
|
74
|
+
target unchanged, as the change set already landed earlier (e.g. on a
|
|
75
|
+
repeated integration), counts as *no* integration: its empty merge
|
|
76
|
+
commit is dropped again and the skill stops with an error. So it never
|
|
77
|
+
reports a success without having delivered anything.
|
|
78
|
+
|
|
79
|
+
Unless `--stateless` is given, the plan's `Status:` key follows the
|
|
80
|
+
task lifecycle model: for `solo` the plan has to be `OPEN` (otherwise
|
|
81
|
+
the integration is refused) and it becomes `CLOSED` on a successful
|
|
82
|
+
integration and stays `OPEN` otherwise, for `enterprise` it becomes
|
|
83
|
+
`INTEGRATING` before and `INTEGRATED` (on success), `QUALIFIED` (on
|
|
84
|
+
nothing delivered), or `DEFERRED` (otherwise) after the integration,
|
|
85
|
+
and for `team`, which defines no integration states, it stays
|
|
86
|
+
untouched.
|
|
87
|
+
|
|
88
|
+
After a successful integration, the user is asked whether to preserve
|
|
89
|
+
or delete the task plan, unless `--next` pre-selects this choice.
|
|
90
|
+
|
|
91
|
+
## OPTIONS
|
|
92
|
+
|
|
93
|
+
- `--next`|`-n` *option*[,...]:
|
|
94
|
+
Automatically answer the user dialog for the next step. Recognized
|
|
95
|
+
tokens at this skill: `none` (default, interactive answer
|
|
96
|
+
required), `DONE` (preserve task plan and stop), or `DELETE` (hand
|
|
97
|
+
off to `ase-task-delete`).
|
|
98
|
+
|
|
99
|
+
- `--worktree`|`-w` *name*:
|
|
100
|
+
Operate on the *context worktree* `.ase/worktree/<name>` instead
|
|
101
|
+
of the current working copy, as for `ase-task-implement`. The
|
|
102
|
+
worktree has to exist already: an integration never creates it, so
|
|
103
|
+
a mistyped *name* stops the skill with an error. The option is
|
|
104
|
+
permitted for a `worktree` changeset only, as a `branch:` or
|
|
105
|
+
`attachment:` changeset would leave the context worktree unused.
|
|
106
|
+
|
|
107
|
+
- `--changeset`|`-c` *changeset*:
|
|
108
|
+
Override the plan's `Changeset:` key (`worktree`, `branch:`*name*,
|
|
109
|
+
or `attachment:`*name*) for this run, without changing the plan.
|
|
110
|
+
|
|
111
|
+
- `--draft`|`-d`:
|
|
112
|
+
Shorthand for `--changeset attachment:draft`: deliver the
|
|
113
|
+
*implementation draft* of the plan. Mutually exclusive with
|
|
114
|
+
`--changeset`.
|
|
115
|
+
|
|
116
|
+
- `--target`|`-t` *target*:
|
|
117
|
+
Override the plan's `Target:` key (`worktree`, `branch:`*name*, or
|
|
118
|
+
`source`) for this run, without changing the plan.
|
|
119
|
+
|
|
120
|
+
- `--mode`|`-m` `merge`|`rebase`|`squash`:
|
|
121
|
+
The merge mode, passed through to `ase-repo-merge` (default:
|
|
122
|
+
`merge`): `merge` creates a merge commit, `rebase` rebases the
|
|
123
|
+
change set branch (rewriting its commits) onto the target branch
|
|
124
|
+
and fast-forwards the target branch, and `squash` combines all
|
|
125
|
+
changes of the change set into one new commit on the target branch.
|
|
126
|
+
|
|
127
|
+
- `--no-cleanup`|`-K`:
|
|
128
|
+
After a successful integration, keep the delivered change set
|
|
129
|
+
instead of removing it: the branch and its worktree, or the
|
|
130
|
+
attachment block, which is then marked as delivered by appending
|
|
131
|
+
`, merged <commit>` to its `Desc:` key, so it is never delivered
|
|
132
|
+
again. Without this option, a delivered branch is removed only if
|
|
133
|
+
Git considers it merged (always for `--mode squash`) and its
|
|
134
|
+
worktree has no uncommitted changes. A temporary branch of an
|
|
135
|
+
attachment is always removed.
|
|
136
|
+
|
|
137
|
+
- `--stateless`|`-S`:
|
|
138
|
+
Leave the plan's `Status:` key untouched.
|
|
139
|
+
|
|
140
|
+
## ARGUMENTS
|
|
141
|
+
|
|
142
|
+
- *id*:
|
|
143
|
+
The unique identifier of the task whose change set should be
|
|
144
|
+
integrated. If omitted, the *current* task id is used.
|
|
145
|
+
|
|
146
|
+
## SCENARIOS
|
|
147
|
+
|
|
148
|
+
- You want the implemented change set committed to the code base
|
|
149
|
+
- You want a change set branch merged into its target branch
|
|
150
|
+
- You want a change set attachment delivered into the code base
|
|
151
|
+
- You want a reviewed implementation draft applied to the code base
|
|
152
|
+
- You want the task closed once its change set has landed
|
|
153
|
+
|
|
154
|
+
## EXAMPLES
|
|
155
|
+
|
|
156
|
+
Integrate (commit) the change set of the current task plan:
|
|
157
|
+
|
|
158
|
+
```text
|
|
159
|
+
❯ /ase-task-integrate
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Apply the implementation draft of the task `hello` and remove the
|
|
163
|
+
draft attachment afterwards:
|
|
164
|
+
|
|
165
|
+
```text
|
|
166
|
+
❯ /ase-task-integrate --draft hello
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Merge the change set branch of the task `hello` into `main` and
|
|
170
|
+
keep the branch afterwards:
|
|
171
|
+
|
|
172
|
+
```text
|
|
173
|
+
❯ /ase-task-integrate --changeset branch:feature-hello --target branch:main --no-cleanup hello
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Squash the change set branch of the task `hello` into one commit on
|
|
177
|
+
its target:
|
|
178
|
+
|
|
179
|
+
```text
|
|
180
|
+
❯ /ase-task-integrate --changeset branch:feature-hello --mode squash hello
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## SEE ALSO
|
|
184
|
+
|
|
185
|
+
[`ase-task-implement`](../ase-task-implement/help.md), [`ase-repo-merge`](../ase-repo-merge/help.md),
|
|
186
|
+
[`ase-task-status`](../ase-task-status/help.md), [`ase-task-delete`](../ase-task-delete/help.md).
|
|
187
|
+
|
|
@@ -19,7 +19,7 @@ List Task Plans
|
|
|
19
19
|
|
|
20
20
|
<expand name="getopt"
|
|
21
21
|
arg1="ase-task-list"
|
|
22
|
-
arg2="--verbose|-v --include|-i=none --exclude|-e=
|
|
22
|
+
arg2="--verbose|-v --include|-i=none --exclude|-e=finished">
|
|
23
23
|
$ARGUMENTS
|
|
24
24
|
</expand>
|
|
25
25
|
|
|
@@ -31,21 +31,40 @@ Procedure
|
|
|
31
31
|
---------
|
|
32
32
|
|
|
33
33
|
1. Determine the *effective state set* <states/>, i.e., the lifecycle
|
|
34
|
-
states a task plan has to be in to be listed at all. For this,
|
|
35
|
-
<
|
|
34
|
+
states a task plan has to be in to be listed at all. For this, first
|
|
35
|
+
determine the *all states* set <all-states/> and the *finished
|
|
36
|
+
states* set <finished-states/> of the task lifecycle model
|
|
37
|
+
<ase-project-task-lifecycle/> of the current project:
|
|
38
|
+
|
|
39
|
+
- If <ase-project-task-lifecycle/> is `solo` (or absent):
|
|
40
|
+
<all-states/> is `OPEN`, `SHELVED`, `CLOSED`, and `CANCELLED`,
|
|
41
|
+
and <finished-states/> is `CLOSED` and `CANCELLED`.
|
|
42
|
+
|
|
43
|
+
- If <ase-project-task-lifecycle/> is `team`:
|
|
44
|
+
<all-states/> is `PLANNING`, `SHELVED`, `IMPLEMENTING`,
|
|
45
|
+
`STALLED`, `IMPLEMENTED`, and `CANCELLED`, and
|
|
46
|
+
<finished-states/> is `IMPLEMENTED` and `CANCELLED`.
|
|
47
|
+
|
|
48
|
+
- If <ase-project-task-lifecycle/> is `enterprise`:
|
|
49
|
+
<all-states/> is `DRAFTED`, `SHELVED`, `PLANNING`, `PLANNED`,
|
|
50
|
+
`STALLED`, `IMPLEMENTING`, `IMPLEMENTED`, `DECLINED`,
|
|
51
|
+
`QUALIFYING`, `QUALIFIED`, `DEFERRED`, `INTEGRATING`, `INTEGRATED`,
|
|
52
|
+
and `CANCELLED`, and <finished-states/> is `INTEGRATED` and
|
|
53
|
+
`CANCELLED`.
|
|
54
|
+
|
|
55
|
+
Then parse <getopt-option-include/> and <getopt-option-exclude/> as
|
|
36
56
|
comma-separated token lists, silently dropping the `none` sentinel
|
|
37
|
-
and any empty token
|
|
38
|
-
|
|
39
|
-
`
|
|
40
|
-
|
|
41
|
-
skill:
|
|
57
|
+
and any empty token, and replacing the `finished` sentinel with
|
|
58
|
+
<finished-states/>. If a token <token/> is *not* one of the
|
|
59
|
+
`Status:` values in <all-states/>, only output the following
|
|
60
|
+
<template/> and then *STOP* processing the entire current skill:
|
|
42
61
|
|
|
43
62
|
<template>
|
|
44
63
|
⧉ **ASE**: ✪ skill: **ase-task-list**, ▶ ERROR: invalid state: **<token/>**
|
|
45
64
|
</template>
|
|
46
65
|
|
|
47
|
-
Otherwise set <states/> to
|
|
48
|
-
empty, to the *include* list if only it is non-empty, to all
|
|
66
|
+
Otherwise set <states/> to <all-states/> if both lists are
|
|
67
|
+
empty, to the *include* list if only it is non-empty, to <all-states/>
|
|
49
68
|
*minus* the *exclude* list if only it is non-empty, and to the
|
|
50
69
|
*include* list *minus* the *exclude* list if both are non-empty. If
|
|
51
70
|
the resulting <states/> is *empty*, only output the following
|
|
@@ -61,18 +80,30 @@ Procedure
|
|
|
61
80
|
hence emit no output at all):
|
|
62
81
|
|
|
63
82
|
<ase-tpl-hint level="minimal">
|
|
64
|
-
The `--exclude` default `
|
|
83
|
+
The `--exclude` default `finished` (the finished states of the task lifecycle model) still applies -- add `--exclude none` to reach finished states via `--include`.
|
|
65
84
|
</ase-tpl-hint>
|
|
66
85
|
|
|
67
86
|
2. Call the `ase_task_list(verbose: <getopt-option-verbose/>)` tool from
|
|
68
87
|
the `ase` MCP server. The result is a structured object with a
|
|
69
88
|
`tasks` array where each entry has an `id` and a `status` field, and
|
|
70
89
|
-- if <getopt-option-verbose/> is `true` -- additionally an `mtime`
|
|
71
|
-
field (formatted as `YYYY-MM-DD HH:MM`)
|
|
72
|
-
|
|
73
|
-
|
|
90
|
+
field (formatted as `YYYY-MM-DD HH:MM`) and an `effort` field (the
|
|
91
|
+
T-shirt size `XS`, `S`, `M`, `L`, or `XL` of the task, empty if not
|
|
92
|
+
estimated). *Drop* from the `tasks`
|
|
93
|
+
array every entry whose `status` is contained in <all-states/> but
|
|
94
|
+
*not* in <states/>. *Keep* every entry whose `status` is *not*
|
|
95
|
+
contained in <all-states/> at all, regardless of <states/>, and
|
|
96
|
+
remember it as an *unknown-status entry*. Do not output anything.
|
|
97
|
+
|
|
98
|
+
3. For each *unknown-status entry* of step 2, output the following
|
|
99
|
+
<template/>, where <id/> and <status/> correspond to the entry and
|
|
100
|
+
<all-states/> is rendered as a comma-separated list:
|
|
101
|
+
|
|
102
|
+
<template>
|
|
103
|
+
⧉ **ASE**: ◉ task: **<id/>**, ▶ WARNING: unknown status **<status/>** (expected one of: <all-states/>)
|
|
104
|
+
</template>
|
|
74
105
|
|
|
75
|
-
|
|
106
|
+
Then, if the `tasks` array is empty, output the following <template/>:
|
|
76
107
|
|
|
77
108
|
<template>
|
|
78
109
|
⧉ **ASE**: ◉ tasks: *(none)*
|
|
@@ -81,16 +112,17 @@ Procedure
|
|
|
81
112
|
Else, dispatch on <getopt-option-verbose/>:
|
|
82
113
|
|
|
83
114
|
- If <getopt-option-verbose/> is `true`, output the list of tasks
|
|
84
|
-
with the following <template/>, where each <id/>, <status/>,
|
|
85
|
-
<mtime/> correspond to an entry in the task list
|
|
115
|
+
with the following <template/>, where each <id/>, <status/>,
|
|
116
|
+
<effort/>, and <mtime/> correspond to an entry in the task list,
|
|
117
|
+
with an empty <effort/> rendered as `-`:
|
|
86
118
|
|
|
87
119
|
<template>
|
|
88
120
|
⧉ **ASE**: ◉ tasks:
|
|
89
121
|
|
|
90
|
-
| *Task Id* | *Status* | *Last Modified* |
|
|
91
|
-
|
|
92
|
-
| **<id/>** | `<status/>` | `<mtime/>` |
|
|
93
|
-
| [...] | [...] | [...] |
|
|
122
|
+
| *Task Id* | *Status* | *Effort* | *Last Modified* |
|
|
123
|
+
|-----------|-------------|-------------|--------------------|
|
|
124
|
+
| **<id/>** | `<status/>` | `<effort/>` | `<mtime/>` |
|
|
125
|
+
| [...] | [...] | [...] | [...] |
|
|
94
126
|
|
|
95
127
|
</template>
|
|
96
128
|
|
|
@@ -130,11 +162,11 @@ Procedure
|
|
|
130
162
|
|
|
131
163
|
<if condition="<getopt-option-verbose/> is not equal `true`">
|
|
132
164
|
<ase-tpl-hint level="verbose">
|
|
133
|
-
Use `/ase-task-list --verbose` to additionally show the status and the last-modified timestamp of each task plan.
|
|
165
|
+
Use `/ase-task-list --verbose` to additionally show the status, the effort size, and the last-modified timestamp of each task plan.
|
|
134
166
|
</ase-tpl-hint>
|
|
135
167
|
</if>
|
|
136
168
|
|
|
137
169
|
<ase-tpl-hint level="verbose">
|
|
138
|
-
Use `/ase-task-list --include`/`--exclude` to narrow the listing to certain lifecycle states, e.g. `--include
|
|
170
|
+
Use `/ase-task-list --include`/`--exclude` to narrow the listing to certain lifecycle states, e.g. `--include IMPLEMENTING,STALLED`.
|
|
139
171
|
</ase-tpl-hint>
|
|
140
172
|
|
|
@@ -16,42 +16,66 @@
|
|
|
16
16
|
The `ase-task-list` skill lists all available *task ids* in the
|
|
17
17
|
current project by calling the `ase_task_list` MCP tool. In the
|
|
18
18
|
default mode, only the task ids are rendered as a single-column
|
|
19
|
-
Markdown table. In verbose mode, the lifecycle status
|
|
20
|
-
last-modified timestamp of each task
|
|
21
|
-
columns.
|
|
19
|
+
Markdown table. In verbose mode, the lifecycle status, the effort size
|
|
20
|
+
(see `ase-task-estimate`), and the last-modified timestamp of each task
|
|
21
|
+
plan are rendered as additional columns.
|
|
22
22
|
|
|
23
23
|
The listing is restricted to an *effective state set*, derived from the
|
|
24
|
-
`Status:` frontmatter key of each task plan (which defaults to
|
|
25
|
-
for a plan carrying no such
|
|
26
|
-
|
|
27
|
-
listed ones; with both, the
|
|
28
|
-
|
|
29
|
-
aborts the skill with an
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
`Status:` frontmatter key of each task plan (which defaults to the
|
|
25
|
+
initial state of the task lifecycle model for a plan carrying no such
|
|
26
|
+
key): with `--include` only, exactly the listed states are shown; with
|
|
27
|
+
`--exclude` only, all states except the listed ones; with both, the
|
|
28
|
+
included ones minus the excluded ones. An unknown state, or a
|
|
29
|
+
combination which cancels out to an empty set, aborts the skill with an
|
|
30
|
+
error. The `finished` sentinel stands for the finished states of the
|
|
31
|
+
task lifecycle model. By default, `--exclude finished` is in effect, so
|
|
32
|
+
finished and abandoned task plans stay out of the way. A task plan whose
|
|
33
|
+
`Status:` is not a state of the task lifecycle model at all is never
|
|
34
|
+
filtered out: it is kept in the listing and reported with a warning.
|
|
35
|
+
|
|
36
|
+
The states depend on the task lifecycle model configured for the
|
|
37
|
+
project via `project.task.lifecycle`. The `solo` model (default) has
|
|
38
|
+
the 4 states (initial: `OPEN`, finished: `CLOSED` and `CANCELLED`):
|
|
32
39
|
|
|
33
40
|
```text
|
|
34
|
-
|
|
35
|
-
|
|
41
|
+
OPEN SHELVED CLOSED CANCELLED
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The `team` model has the 6 states (initial: `PLANNING`, finished:
|
|
45
|
+
`IMPLEMENTED` and `CANCELLED`):
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
PLANNING SHELVED IMPLEMENTING STALLED IMPLEMENTED CANCELLED
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
The `enterprise` model has the 14 states (initial: `DRAFTED`, finished:
|
|
52
|
+
`INTEGRATED` and `CANCELLED`):
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
DRAFTED SHELVED PLANNING PLANNED STALLED
|
|
56
|
+
IMPLEMENTING IMPLEMENTED DECLINED QUALIFYING QUALIFIED
|
|
57
|
+
DEFERRED INTEGRATING INTEGRATED CANCELLED
|
|
36
58
|
```
|
|
37
59
|
|
|
38
60
|
## OPTIONS
|
|
39
61
|
|
|
40
62
|
- `--verbose`|`-v`:
|
|
41
|
-
Render an additional `Status` column with the lifecycle state
|
|
42
|
-
additional `
|
|
43
|
-
|
|
63
|
+
Render an additional `Status` column with the lifecycle state, an
|
|
64
|
+
additional `Effort` column with the T-shirt size (`-` if not
|
|
65
|
+
estimated), and an additional `Last Modified` column with the
|
|
66
|
+
`YYYY-MM-DD HH:MM` timestamp of each task plan.
|
|
44
67
|
|
|
45
68
|
- `--include`|`-i`=*state*[`,`...]:
|
|
46
69
|
Restrict the listed task plans to the given comma-separated list of
|
|
47
|
-
lifecycle states (e.g. `
|
|
48
|
-
|
|
70
|
+
lifecycle states (e.g. `IMPLEMENTING,STALLED`). Without this option,
|
|
71
|
+
all states are listed. The `none` sentinel selects no state at all,
|
|
72
|
+
the `finished` sentinel selects the finished states.
|
|
49
73
|
|
|
50
74
|
- `--exclude`|`-e`=*state*[`,`...]:
|
|
51
75
|
Remove the given comma-separated list of lifecycle states from the
|
|
52
76
|
listed task plans. Applied *after* `--include`, so
|
|
53
|
-
`-i
|
|
54
|
-
`
|
|
77
|
+
`-i PLANNING,IMPLEMENTING -e IMPLEMENTING` lists `PLANNING` only.
|
|
78
|
+
Defaults to `finished`; pass `--exclude none` to suppress the
|
|
55
79
|
default and list task plans in every state.
|
|
56
80
|
|
|
57
81
|
## SCENARIOS
|
|
@@ -83,7 +107,7 @@ List the task ids of every task plan, including the finished ones:
|
|
|
83
107
|
List only the task ids of the task plans currently under work:
|
|
84
108
|
|
|
85
109
|
```text
|
|
86
|
-
❯ /ase-task-list --include
|
|
110
|
+
❯ /ase-task-list --include IMPLEMENTING,STALLED
|
|
87
111
|
```
|
|
88
112
|
|
|
89
113
|
## SEE ALSO
|
|
@@ -21,16 +21,17 @@ Reboot a Task Plan
|
|
|
21
21
|
|
|
22
22
|
<expand name="getopt"
|
|
23
23
|
arg1="ase-task-reboot"
|
|
24
|
-
arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT|
|
|
24
|
+
arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT|DRAFT)... --int-reuse-task">
|
|
25
25
|
$ARGUMENTS
|
|
26
26
|
</expand>
|
|
27
27
|
|
|
28
28
|
<objective>
|
|
29
29
|
*Reboot* the task plan by crafting it from scratch,
|
|
30
|
-
based on the existing
|
|
30
|
+
based on the existing `SPECIFICATION (WHAT)`.
|
|
31
31
|
</objective>
|
|
32
32
|
|
|
33
33
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md
|
|
34
|
+
@${CLAUDE_SKILL_DIR}/../../meta/ase-format-meta.md
|
|
34
35
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-common-task.md
|
|
35
36
|
|
|
36
37
|
Procedure
|
|
@@ -55,8 +56,7 @@ Procedure
|
|
|
55
56
|
<expand name="task-load-content"></expand>
|
|
56
57
|
|
|
57
58
|
2. <if condition="<task-content/> is empty">
|
|
58
|
-
Complain and tell the user to use the `ase-
|
|
59
|
-
`ase-code-refactor`, `ase-code-craft`, or `ase-task-edit` skills
|
|
59
|
+
Complain and tell the user to use the `ase-task-edit` skill
|
|
60
60
|
first to create a task plan. Then immediately stop processing
|
|
61
61
|
this skill.
|
|
62
62
|
</if>
|
|
@@ -66,58 +66,98 @@ Procedure
|
|
|
66
66
|
1. Start with <instruction></instruction> (set instruction to empty).
|
|
67
67
|
Do not output anything.
|
|
68
68
|
|
|
69
|
-
2. <if condition="<task-content/> contains
|
|
70
|
-
Set <
|
|
69
|
+
2. <if condition="the `## SPECIFICATION (WHAT)` section of <task-content/> contains at least one `DOM` or `IFC` bullet-point">
|
|
70
|
+
Set <mode>structured</mode>. Extract the <text/> of *every*
|
|
71
|
+
`DOM` and `IFC` bullet-point of the `## SPECIFICATION (WHAT)`
|
|
72
|
+
section, in their original order, each with its
|
|
73
|
+
`- <box/> <type/>:` prefix stripped and its wording kept
|
|
74
|
+
*verbatim*. Set <instruction/> to these texts, joined by a
|
|
75
|
+
blank line (set instruction to the extracted specification).
|
|
76
|
+
The `## DESIGN (HOW)` and `## VERIFICATION (WHEN)` sections
|
|
77
|
+
are *deliberately* ignored, as the reboot re-derives them from
|
|
78
|
+
scratch.
|
|
71
79
|
</if>
|
|
72
80
|
|
|
73
|
-
3. <if condition="<
|
|
74
|
-
Set <
|
|
81
|
+
3. <if condition="<instruction/> is still empty">
|
|
82
|
+
Set <mode>unstructured</mode>. The plan does not follow the
|
|
83
|
+
<format/> (or carries no `DOM` or `IFC` bullet-point), so the
|
|
84
|
+
reboot has to *file* its entire existing content into the
|
|
85
|
+
<format/> instead. Set <instruction/> to the full previous plan
|
|
86
|
+
"body" (the second block of <task-content/>, without frontmatter
|
|
87
|
+
and backmatter), with its wording kept *verbatim*.
|
|
75
88
|
</if>
|
|
76
89
|
|
|
77
|
-
4. <if condition="<task-content/>
|
|
78
|
-
Set <instruction><text/></instruction> (set instruction to extracted text).
|
|
79
|
-
</if>
|
|
80
|
-
|
|
81
|
-
5. <if condition="<task-content/> contains '- **WHY**: <text/>' and <instruction/> is NOT empty">
|
|
82
|
-
Set <instruction><instruction/>, BECAUSE <text/></instruction>
|
|
83
|
-
(append extracted text to instruction).
|
|
84
|
-
</if>
|
|
85
|
-
|
|
86
|
-
6. <if condition="the frontmatter of <task-content/> carries a `Created: <text/>` key">
|
|
90
|
+
4. <if condition="the frontmatter of <task-content/> carries a `Created: <text/>` key">
|
|
87
91
|
Set <timestamp-created><text/></timestamp-created> (set
|
|
88
92
|
timestamp-created to extracted text).
|
|
89
93
|
</if>
|
|
90
94
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
full previous plan content: set <instruction><task-content/></instruction>
|
|
96
|
-
(set instruction to task content).
|
|
97
|
-
<if condition="<instruction/> is still empty or contains only whitespace">
|
|
98
|
-
There is nothing to reboot from. Only output the following
|
|
99
|
-
<template/> and then immediately *STOP* processing the entire
|
|
100
|
-
current skill:
|
|
95
|
+
5. <if condition="<instruction/> is empty or contains only whitespace">
|
|
96
|
+
There is nothing to reboot from. Only output the following
|
|
97
|
+
<template/> and then immediately *STOP* processing the entire
|
|
98
|
+
current skill:
|
|
101
99
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
</if>
|
|
100
|
+
<template>
|
|
101
|
+
⧉ **ASE**: ☻ skill: **ase-task-reboot**, ▶ ERROR: empty instruction -- nothing to reboot from
|
|
102
|
+
</template>
|
|
106
103
|
</if>
|
|
107
104
|
|
|
108
|
-
|
|
105
|
+
6. Only output the following <template/> and continue processing:
|
|
109
106
|
|
|
110
107
|
<template>
|
|
111
108
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇌ instruction: **<instruction/>**, ▶ status: **instruction given**
|
|
112
109
|
</template>
|
|
113
110
|
|
|
114
|
-
|
|
111
|
+
7. <expand name="task-ground-plan" arg1=""/>
|
|
112
|
+
|
|
113
|
+
Create a new plan from scratch and store the result as
|
|
115
114
|
<task-content/> by closely following the defined plan format
|
|
116
115
|
<format/> and injecting into it all the information from
|
|
117
|
-
the <instruction
|
|
118
|
-
<instruction
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
the <instruction/>, all decisions you derived from the
|
|
117
|
+
<instruction/>, and the grounding in the project, where:
|
|
118
|
+
|
|
119
|
+
- <if condition="<mode/> is `structured`">
|
|
120
|
+
the `## SPECIFICATION (WHAT)` section is *seeded* by the
|
|
121
|
+
extracted `DOM` and `IFC` bullet-points, re-phrased and
|
|
122
|
+
re-structured where the <instruction/> demands it, and the
|
|
123
|
+
`## DESIGN (HOW)` and `## VERIFICATION (WHEN)` sections
|
|
124
|
+
are *re-derived* from scratch,
|
|
125
|
+
</if>
|
|
126
|
+
- <if condition="<mode/> is `unstructured`">
|
|
127
|
+
*all* existing content of the <instruction/> is *filed* into
|
|
128
|
+
the `## SPECIFICATION (WHAT)`, `## DESIGN (HOW)`, and
|
|
129
|
+
`## VERIFICATION (WHEN)` sections: classify each existing
|
|
130
|
+
statement, prose paragraph, bullet, or list item by its
|
|
131
|
+
nature into a `DOM`, `IFC`, `ARC`, `IMP`, `REG`, or `CON`
|
|
132
|
+
bullet-point, keep its wording as *verbatim* as the
|
|
133
|
+
bullet-point <text/> conventions allow, *never* drop a
|
|
134
|
+
distinct statement, and *add* missing `DOM`/`IFC`,
|
|
135
|
+
`ARC`/`IMP`, and `REG`/`CON` bullet-points *derived* from
|
|
136
|
+
the existing content where a section would otherwise stay
|
|
137
|
+
empty,
|
|
138
|
+
</if>
|
|
139
|
+
- every bullet-point starts in the `[ ]` todo state,
|
|
140
|
+
- the `Status:` frontmatter key is *reset* to the *default*
|
|
141
|
+
state of the task lifecycle model
|
|
142
|
+
<ase-project-task-lifecycle/>, as the rebooted plan starts
|
|
143
|
+
its lifecycle anew,
|
|
144
|
+
- the frontmatter keys `Group:`, `Phase:`, `After:`, `Assignee:`,
|
|
145
|
+
`Kind:`, and `Tags:` are taken over from the previous plan *verbatim*
|
|
146
|
+
where present, except that all `grilled:` tags
|
|
147
|
+
are *dropped* from `Tags:` (the whole key is dropped if no
|
|
148
|
+
other tag remains), as the grilled plan content is gone,
|
|
149
|
+
- the `Kind:` frontmatter key, if *absent* in the previous plan,
|
|
150
|
+
is *created* by *inferring* the kind of change from the
|
|
151
|
+
*re-created* plan content according to the plan <format/>
|
|
152
|
+
(defaulting to `CRAFTING`),
|
|
153
|
+
- the frontmatter keys `Source:`, `Changeset:`, and `Target:`
|
|
154
|
+
are *dropped*, so they are *reset* to their configured
|
|
155
|
+
defaults according to the plan <format/>, as the rebooted
|
|
156
|
+
plan starts its change set flow anew, and
|
|
157
|
+
- the entire "backmatter" of the previous plan is passed
|
|
158
|
+
through *verbatim*.
|
|
159
|
+
|
|
160
|
+
8. <expand name="task-save-content" arg1="plan rebooted"></expand>
|
|
121
161
|
|
|
122
162
|
4. **Decide Next Step:**
|
|
123
163
|
|
|
@@ -125,12 +165,12 @@ Procedure
|
|
|
125
165
|
|
|
126
166
|
<expand name="task-next-select"
|
|
127
167
|
arg1="ase-task-reboot"
|
|
128
|
-
arg2="DONE|EDIT|IMPLEMENT|
|
|
168
|
+
arg2="DONE|EDIT|IMPLEMENT|DRAFT">
|
|
129
169
|
Next Step: How would you like to proceed with the plan?
|
|
130
170
|
DONE: Stop processing.
|
|
131
171
|
EDIT: Hand off plan to editing.
|
|
132
172
|
IMPLEMENT: Hand off plan to implementation.
|
|
133
|
-
|
|
173
|
+
DRAFT: Hand off plan to implementation drafting.
|
|
134
174
|
</expand>
|
|
135
175
|
|
|
136
176
|
2. Check the tool <result/> and dispatch accordingly:
|
|
@@ -150,7 +190,8 @@ Procedure
|
|
|
150
190
|
<expand name="task-next-handoff" arg1="ase-task-implement"
|
|
151
191
|
arg2="plan rebooted -- hand-off to implementation"></expand>
|
|
152
192
|
|
|
153
|
-
- If <result/> is `
|
|
154
|
-
<expand name="task-next-handoff" arg1="ase-task-
|
|
155
|
-
arg2="plan rebooted -- hand-off to
|
|
193
|
+
- If <result/> is `DRAFT`:
|
|
194
|
+
<expand name="task-next-handoff" arg1="ase-task-implement"
|
|
195
|
+
arg2="plan rebooted -- hand-off to implementation draft"
|
|
196
|
+
arg3="--draft"></expand>
|
|
156
197
|
|