@rse/ase 2.0.3 → 2.0.5
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-hook.js +13 -4
- package/dst/ase-lib-version.js +14 -5
- package/dst/ase-man-catalog.js +229 -0
- package/dst/ase-man-render.js +278 -0
- package/dst/ase-man-tui.js +636 -0
- package/dst/ase-man.js +33 -27
- package/dst/ase-setup.js +2 -2
- package/dst/ase-spec.js +103 -20
- package/dst/ase-task-board-filter.js +5 -4
- package/dst/ase-task-board-web-client.js +26 -26
- package/dst/man/ase-agent-adhoc.md +1165 -0
- package/dst/man/ase-agent-condenser.md +383 -0
- package/dst/man/ase-agent-editor.md +441 -0
- package/dst/man/ase-agent-estimator.md +477 -0
- package/dst/man/ase-agent-fleet.md +358 -0
- package/dst/man/ase-agent-implementer.md +521 -0
- package/dst/man/ase-agent-integrator.md +449 -0
- package/dst/man/ase-agent-qualifier.md +426 -0
- package/dst/man/ase-agent-rebooter.md +384 -0
- package/dst/man/ase-agent-relay.md +262 -0
- package/dst/man/ase-agent-researcher.md +478 -0
- package/dst/man/ase-agent.md +628 -0
- package/dst/man/ase-artifact-list.md +57 -0
- package/dst/man/ase-artifact-name.md +56 -0
- package/dst/man/ase-artifact.md +92 -0
- package/dst/man/ase-config-delete.md +74 -0
- package/dst/man/ase-config-edit.md +83 -0
- package/dst/man/ase-config-get.md +70 -0
- package/dst/man/ase-config-init.md +110 -0
- package/dst/man/ase-config-list.md +68 -0
- package/dst/man/ase-config-set.md +92 -0
- package/dst/man/ase-config.md +426 -0
- package/dst/man/ase-hook-permission-request.md +61 -0
- package/dst/man/ase-hook-pre-tool-use.md +96 -0
- package/dst/man/ase-hook-session-end.md +71 -0
- package/dst/man/ase-hook-session-persona.md +65 -0
- package/dst/man/ase-hook-session-start.md +184 -0
- package/dst/man/ase-hook-stop.md +52 -0
- package/dst/man/ase-hook-user-prompt-submit.md +54 -0
- package/dst/man/ase-hook.md +93 -0
- package/dst/man/ase-man.md +195 -0
- package/dst/man/ase-mcp.md +102 -0
- package/dst/man/ase-service-log.md +59 -0
- package/dst/man/ase-service-send.md +60 -0
- package/dst/man/ase-service-start.md +93 -0
- package/dst/man/ase-service-status.md +58 -0
- package/dst/man/ase-service-stop.md +52 -0
- package/dst/man/ase-service.md +124 -0
- package/dst/man/ase-setup-disable.md +67 -0
- package/dst/man/ase-setup-enable.md +66 -0
- package/dst/man/ase-setup-install.md +116 -0
- package/dst/man/ase-setup-mcp.md +213 -0
- package/dst/man/ase-setup-status.md +101 -0
- package/dst/man/ase-setup-statusline.md +162 -0
- package/dst/man/ase-setup-telemetry.md +166 -0
- package/dst/man/ase-setup-uninstall.md +85 -0
- package/dst/man/ase-setup-update.md +117 -0
- package/dst/man/ase-setup.md +156 -0
- package/dst/man/ase-spec-export.md +99 -0
- package/dst/man/ase-spec-init.md +57 -0
- package/dst/man/ase-spec-lint.md +74 -0
- package/dst/man/ase-spec-preview.md +57 -0
- package/dst/man/ase-spec.md +85 -0
- package/dst/man/ase-statusline.md +330 -0
- package/dst/man/ase-task-assign.md +138 -0
- package/dst/man/ase-task-board.md +651 -0
- package/dst/man/ase-task-delete.md +46 -0
- package/dst/man/ase-task-edit.md +73 -0
- package/dst/man/ase-task-idscheme.md +92 -0
- package/dst/man/ase-task-lifecycle.md +92 -0
- package/dst/man/ase-task-list.md +86 -0
- package/dst/man/ase-task-load.md +48 -0
- package/dst/man/ase-task-newid.md +100 -0
- package/dst/man/ase-task-purge.md +49 -0
- package/dst/man/ase-task-rename.md +69 -0
- package/dst/man/ase-task-request.md +108 -0
- package/dst/man/ase-task-save.md +78 -0
- package/dst/man/ase-task-status.md +79 -0
- package/dst/man/ase-task-store.md +377 -0
- package/dst/man/ase-task-view.md +50 -0
- package/dst/man/ase-task.md +335 -0
- package/dst/man/ase-util-compat.md +38 -0
- package/dst/man/ase-util-diagram.md +140 -0
- package/dst/man/ase-util-meta.md +68 -0
- package/dst/man/ase-util-metric.md +74 -0
- package/dst/man/ase-util-mint.md +85 -0
- package/dst/man/ase-util-worktree.md +109 -0
- package/dst/man/ase-util.md +81 -0
- package/dst/man/ase.md +228 -0
- package/package.json +16 -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-code-lint.md +3 -3
- package/plugin/agents/ase-docs-proofread.md +3 -3
- package/plugin/agents/ase-docs-refine.md +3 -3
- package/plugin/agents/ase-spec-lint.md +338 -0
- package/plugin/mods/ase-mods-common.ts +444 -0
- package/plugin/mods/ase-mods-grill.ts +312 -0
- package/plugin/mods/ase-mods-help-browse.ts +405 -0
- package/plugin/mods/ase-mods-help-compose.ts +561 -0
- package/plugin/mods/ase-mods-help-find.ts +426 -0
- package/plugin/mods/ase-mods-help-hint.ts +134 -0
- package/plugin/mods/ase-mods-help-show.ts +142 -0
- package/plugin/mods/ase-mods.ts +214 -381
- package/plugin/mods/claude-code.d.ts +26 -3
- package/plugin/skills/ase-code-lint/SKILL.md +15 -15
- package/plugin/skills/ase-code-lint/help.md +21 -8
- package/plugin/skills/ase-help-intent/SKILL.md +2 -1
- package/plugin/skills/ase-help-intent/data.md +214 -9
- package/plugin/skills/ase-help-skill/catalog.md +1 -0
- package/plugin/skills/ase-meta-workflow/workflow.txt +2 -0
- package/plugin/skills/ase-repo-commit/SKILL.md +1 -0
- package/plugin/skills/ase-repo-merge/SKILL.md +1 -0
- package/plugin/skills/ase-spec-edit/SKILL.md +3 -3
- package/plugin/skills/ase-spec-edit/help.md +1 -1
- package/plugin/skills/ase-spec-lint/SKILL.md +695 -0
- package/plugin/skills/ase-spec-lint/help.md +184 -0
- package/plugin/skills/ase-task-implement/SKILL.md +24 -6
- package/plugin/skills/ase-task-implement/help.md +11 -1
- package/dst/man/ase-agent-adhoc.1 +0 -515
- package/dst/man/ase-agent-condenser.1 +0 -193
- package/dst/man/ase-agent-editor.1 +0 -212
- package/dst/man/ase-agent-estimator.1 +0 -214
- package/dst/man/ase-agent-fleet.1 +0 -185
- package/dst/man/ase-agent-implementer.1 +0 -233
- package/dst/man/ase-agent-integrator.1 +0 -213
- package/dst/man/ase-agent-qualifier.1 +0 -214
- package/dst/man/ase-agent-rebooter.1 +0 -193
- package/dst/man/ase-agent-relay.1 +0 -128
- package/dst/man/ase-agent-researcher.1 +0 -217
- package/dst/man/ase-agent.1 +0 -264
- package/dst/man/ase-artifact-list.1 +0 -38
- package/dst/man/ase-artifact-name.1 +0 -39
- package/dst/man/ase-artifact.1 +0 -56
- package/dst/man/ase-config-delete.1 +0 -45
- package/dst/man/ase-config-edit.1 +0 -48
- package/dst/man/ase-config-get.1 +0 -46
- package/dst/man/ase-config-init.1 +0 -60
- package/dst/man/ase-config-list.1 +0 -42
- package/dst/man/ase-config-set.1 +0 -52
- package/dst/man/ase-config.1 +0 -231
- package/dst/man/ase-hook-permission-request.1 +0 -36
- package/dst/man/ase-hook-pre-tool-use.1 +0 -59
- package/dst/man/ase-hook-session-end.1 +0 -47
- package/dst/man/ase-hook-session-persona.1 +0 -37
- package/dst/man/ase-hook-session-start.1 +0 -81
- package/dst/man/ase-hook-stop.1 +0 -34
- package/dst/man/ase-hook-user-prompt-submit.1 +0 -34
- package/dst/man/ase-hook.1 +0 -51
- package/dst/man/ase-man.1 +0 -67
- package/dst/man/ase-mcp.1 +0 -61
- package/dst/man/ase-service-log.1 +0 -43
- package/dst/man/ase-service-send.1 +0 -47
- package/dst/man/ase-service-start.1 +0 -54
- package/dst/man/ase-service-status.1 +0 -46
- package/dst/man/ase-service-stop.1 +0 -37
- package/dst/man/ase-service.1 +0 -85
- package/dst/man/ase-setup-disable.1 +0 -44
- package/dst/man/ase-setup-enable.1 +0 -45
- package/dst/man/ase-setup-install.1 +0 -73
- package/dst/man/ase-setup-mcp.1 +0 -124
- package/dst/man/ase-setup-status.1 +0 -60
- package/dst/man/ase-setup-statusline.1 +0 -92
- package/dst/man/ase-setup-telemetry.1 +0 -92
- package/dst/man/ase-setup-uninstall.1 +0 -59
- package/dst/man/ase-setup-update.1 +0 -64
- package/dst/man/ase-setup.1 +0 -93
- package/dst/man/ase-spec-export.1 +0 -62
- package/dst/man/ase-spec-lint.1 +0 -40
- package/dst/man/ase-spec-preview.1 +0 -40
- package/dst/man/ase-spec.1 +0 -46
- package/dst/man/ase-statusline.1 +0 -189
- package/dst/man/ase-task-assign.1 +0 -71
- package/dst/man/ase-task-board.1 +0 -384
- package/dst/man/ase-task-delete.1 +0 -35
- package/dst/man/ase-task-edit.1 +0 -46
- package/dst/man/ase-task-idscheme.1 +0 -65
- package/dst/man/ase-task-lifecycle.1 +0 -57
- package/dst/man/ase-task-list.1 +0 -47
- package/dst/man/ase-task-load.1 +0 -36
- package/dst/man/ase-task-newid.1 +0 -61
- package/dst/man/ase-task-purge.1 +0 -37
- package/dst/man/ase-task-rename.1 +0 -44
- package/dst/man/ase-task-request.1 +0 -61
- package/dst/man/ase-task-save.1 +0 -48
- package/dst/man/ase-task-status.1 +0 -55
- package/dst/man/ase-task-store.1 +0 -194
- package/dst/man/ase-task-view.1 +0 -40
- package/dst/man/ase-task.1 +0 -160
- package/dst/man/ase-util-compat.1 +0 -25
- package/dst/man/ase-util-diagram.1 +0 -76
- package/dst/man/ase-util-meta.1 +0 -45
- package/dst/man/ase-util-metric.1 +0 -54
- package/dst/man/ase-util-mint.1 +0 -59
- package/dst/man/ase-util-worktree.1 +0 -72
- package/dst/man/ase-util.1 +0 -50
- package/dst/man/ase.1 +0 -124
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-spec-lint` - Lint Specification
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-spec-lint`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
[`--auto`|`-a`]
|
|
11
|
+
[`--severity`|`-S`=(`AUTO`|`LOW`|`MEDIUM`|`HIGH`)]
|
|
12
|
+
[`--force`|`-f`]
|
|
13
|
+
[`--include`|`-i`=*aspect*[`,`...]]
|
|
14
|
+
[`--exclude`|`-e`=*aspect*[`,`...]]
|
|
15
|
+
[`--staged`]
|
|
16
|
+
[`--unstaged`]
|
|
17
|
+
[*spec-reference*]
|
|
18
|
+
|
|
19
|
+
## DESCRIPTION
|
|
20
|
+
|
|
21
|
+
The `ase-spec-lint` skill lints the *SpecBook*-based specification
|
|
22
|
+
(SPEC) for *potential quality problems* related to a fixed set of
|
|
23
|
+
specification quality aspects: from its syntax and formatting, over
|
|
24
|
+
its individual statements, up to the logical gaps of its model and its
|
|
25
|
+
completeness for an implementation. The investigation is dispatched to
|
|
26
|
+
sub-agents (`ase:ase-spec-lint`) so that scanning details do not leak
|
|
27
|
+
into the user-visible transcript.
|
|
28
|
+
|
|
29
|
+
For each detected problem, the skill renders a unified-diff *SOLUTION*
|
|
30
|
+
preview and either asks the user to `ACCEPT` or `REJECT` the proposed
|
|
31
|
+
correction interactively (or refine it via a free-text hint, which
|
|
32
|
+
re-proposes the correction without limit) or - with `--auto` - applies
|
|
33
|
+
all corrections automatically. Every applied correction refreshes the
|
|
34
|
+
`Modified:` timestamp of the changed specification files.
|
|
35
|
+
|
|
36
|
+
By default all ten specification quality aspects are checked. The
|
|
37
|
+
`--include` and `--exclude` options narrow this to an *effective aspect
|
|
38
|
+
set*: with `--include` only, exactly the listed aspects are checked;
|
|
39
|
+
with `--exclude` only, all aspects except the listed ones; with both,
|
|
40
|
+
the included ones minus the excluded ones. An unknown aspect id, or a
|
|
41
|
+
combination which cancels out to an empty set, aborts the skill with an
|
|
42
|
+
error. The ten aspect ids are:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
S01 SYNTAX S04 AMBIGUITY S07 REDUNDANCY S10 COMPLETENESS
|
|
46
|
+
S02 FORMAT S05 ATOMICITY S08 CONSISTENCY
|
|
47
|
+
S03 RATIONALE S06 REALIZATION S09 LOGIC
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The `S01 SYNTAX` aspect reports the diagnostics of the specification
|
|
51
|
+
linting against the *SpecBook* schema configuration of the project and
|
|
52
|
+
of the generic Markdown linting via *markdownlint* (both as with `ase
|
|
53
|
+
spec lint --markdown`), mapping the severity `error` onto `HIGH` and
|
|
54
|
+
`warning` onto `MEDIUM`. The `S02 FORMAT` aspect checks the formatting
|
|
55
|
+
against the *SpecBook* format variants and the prevailing conventions
|
|
56
|
+
of the specification itself. The aspects `S03 RATIONALE` up to `S07
|
|
57
|
+
REDUNDANCY` check the statements against the *Specifying Tenets* of
|
|
58
|
+
*ASE*: a `, BECAUSE` rationale per statement, unambiguous and
|
|
59
|
+
verifiable statements, atomic statements, intent instead of
|
|
60
|
+
realization, and a single source of truth per fact.
|
|
61
|
+
|
|
62
|
+
The *model-wide* aspects `S07 REDUNDANCY` up to `S10 COMPLETENESS` are
|
|
63
|
+
judged on the *entire* specification, even if only parts of it are
|
|
64
|
+
linted: `S08 CONSISTENCY` checks for contradictions and drifting
|
|
65
|
+
terminology, `S09 LOGIC` for logical gaps in the specification model
|
|
66
|
+
(like unreachable states or entities without any relationship), and
|
|
67
|
+
`S10 COMPLETENESS` for open ends which would force an implementer to
|
|
68
|
+
guess. As the corrections of `S09 LOGIC` and `S10 COMPLETENESS` fill
|
|
69
|
+
gaps with *best-guess* content, they are proposed for review only and
|
|
70
|
+
are *never* applied under `--auto`.
|
|
71
|
+
|
|
72
|
+
## OPTIONS
|
|
73
|
+
|
|
74
|
+
- `--auto`|`-a`:
|
|
75
|
+
Automatically apply every proposed correction without asking the
|
|
76
|
+
user via the interactive dialog, except for the best-guess
|
|
77
|
+
corrections of the aspects `S09 LOGIC` and `S10 COMPLETENESS`,
|
|
78
|
+
which are only reported.
|
|
79
|
+
|
|
80
|
+
- `--severity`|`-S`=(`AUTO`|`LOW`|`MEDIUM`|`HIGH`):
|
|
81
|
+
Set the *severity floor* (default `AUTO`): findings below the chosen
|
|
82
|
+
threshold are silently suppressed, ordered `LOW` < `MEDIUM` <
|
|
83
|
+
`HIGH`. The default `AUTO` means `MEDIUM` for a project with `grey`
|
|
84
|
+
boxing (unless `--force` is given) and `LOW` (keep all findings)
|
|
85
|
+
otherwise; an explicitly given floor always wins over the `grey`
|
|
86
|
+
boxing, i.e. e.g. with `LOW`, it acts on all findings of a project
|
|
87
|
+
with `grey` boxing. `ACCEPTED` findings are never suppressed.
|
|
88
|
+
Surviving findings are reported in *descending severity* order
|
|
89
|
+
`HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`, keeping the `file`/`line` order
|
|
90
|
+
within the same severity.
|
|
91
|
+
|
|
92
|
+
- `--force`|`-f`:
|
|
93
|
+
Ignore the project boxing entirely: lint a project with `black`
|
|
94
|
+
boxing (which is otherwise not linted at all), and show the full
|
|
95
|
+
unified diffs and the default `LOW` severity floor for a project
|
|
96
|
+
with `grey` boxing (which otherwise shows only condensed one-line
|
|
97
|
+
diffs and defaults to the `MEDIUM` severity floor).
|
|
98
|
+
|
|
99
|
+
- `--include`|`-i`=*aspect*[`,`...]:
|
|
100
|
+
Restrict the checked specification quality aspects to the given
|
|
101
|
+
comma-separated list of aspect ids (e.g. `S01,S02`). Without this
|
|
102
|
+
option, all ten aspects are checked.
|
|
103
|
+
|
|
104
|
+
- `--exclude`|`-e`=*aspect*[`,`...]:
|
|
105
|
+
Remove the given comma-separated list of aspect ids from the checked
|
|
106
|
+
specification quality aspects. Applied *after* `--include`, so
|
|
107
|
+
`-i S09,S10 -e S10` checks `S09` only.
|
|
108
|
+
|
|
109
|
+
- `--staged`:
|
|
110
|
+
Restrict the linting to the specification files with *staged* Git
|
|
111
|
+
changes. Deleted files are skipped, and the files are linted in
|
|
112
|
+
their current working copy state. Combined with `--unstaged`, lint
|
|
113
|
+
the specification files with *any* uncommitted Git changes.
|
|
114
|
+
|
|
115
|
+
- `--unstaged`:
|
|
116
|
+
Restrict the linting to the specification files with *unstaged* Git
|
|
117
|
+
changes plus the *untracked* specification files. Deleted files are
|
|
118
|
+
skipped. Combined with `--staged`, lint the specification files with
|
|
119
|
+
*any* uncommitted Git changes.
|
|
120
|
+
|
|
121
|
+
## ARGUMENTS
|
|
122
|
+
|
|
123
|
+
- *spec-reference*:
|
|
124
|
+
A file, directory, or wildcard reference to the specification files
|
|
125
|
+
to lint. Without it, the *entire* specification is linted, resp.
|
|
126
|
+
under `--staged` or `--unstaged` all changed specification files.
|
|
127
|
+
|
|
128
|
+
## SCENARIOS
|
|
129
|
+
|
|
130
|
+
- You want your specification checked for specification quality problems
|
|
131
|
+
- You want to know whether your specification is sufficient for an implementation
|
|
132
|
+
- You want logical gaps in your specification model detected
|
|
133
|
+
- You want corrections proposed which you accept or reject one by one
|
|
134
|
+
- You want all mechanical corrections applied automatically
|
|
135
|
+
- You want only your staged or unstaged specification changes linted before committing
|
|
136
|
+
|
|
137
|
+
## EXAMPLES
|
|
138
|
+
|
|
139
|
+
Lint the entire specification interactively:
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
❯ /ase-spec-lint
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Lint a single specification file and automatically apply all corrections:
|
|
146
|
+
|
|
147
|
+
```text
|
|
148
|
+
❯ /ase-spec-lint --auto docs/spec/data-model.md
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Lint the specification for its syntax and formatting only:
|
|
152
|
+
|
|
153
|
+
```text
|
|
154
|
+
❯ /ase-spec-lint -i S01,S02
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Check the specification model for logical gaps and completeness only:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
❯ /ase-spec-lint -i S09,S10
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Lint the specification, reporting only `MEDIUM` and `HIGH` findings:
|
|
164
|
+
|
|
165
|
+
```text
|
|
166
|
+
❯ /ase-spec-lint -S MEDIUM
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Lint the specification regardless of the project boxing:
|
|
170
|
+
|
|
171
|
+
```text
|
|
172
|
+
❯ /ase-spec-lint --force
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Lint only the specification files with staged Git changes:
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
❯ /ase-spec-lint --staged
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## SEE ALSO
|
|
182
|
+
|
|
183
|
+
[`ase-spec-edit`](../ase-spec-edit/help.md), [`ase-spec-activate`](../ase-spec-activate/help.md),
|
|
184
|
+
[`ase-code-lint`](../ase-code-lint/help.md), [`ase-sync-export`](../ase-sync-export/help.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ase-task-implement
|
|
3
|
-
argument-hint: "[--help|-h] [--next|-n <option>[,...]] [--worktree|-w <name>] [--source|-s <source>] [--changeset|-c <changeset>] [--draft|-d] [--stateless|-S] [<id>]"
|
|
3
|
+
argument-hint: "[--help|-h] [--next|-n <option>[,...]] [--worktree|-w <name>] [--source|-s <source>] [--changeset|-c <changeset>] [--draft|-d] [--no-cleanup|-K] [--stateless|-S] [<id>]"
|
|
4
4
|
description: >
|
|
5
5
|
Implement current or given task plan, optionally as an implementation
|
|
6
6
|
draft attachment only. Use when the user calls to "implement", "realize",
|
|
@@ -22,7 +22,7 @@ Implement a Task Plan
|
|
|
22
22
|
|
|
23
23
|
<expand name="getopt"
|
|
24
24
|
arg1="ase-task-implement"
|
|
25
|
-
arg2="--next|-n=(none|DONE|EDIT|INTEGRATE|DELETE)... --worktree|-w= --source|-s= --changeset|-c= --draft|-d --stateless|-S --int-reuse-task">
|
|
25
|
+
arg2="--next|-n=(none|DONE|EDIT|INTEGRATE|DELETE)... --worktree|-w= --source|-s= --changeset|-c= --draft|-d --no-cleanup|-K --stateless|-S --int-reuse-task">
|
|
26
26
|
$ARGUMENTS
|
|
27
27
|
</expand>
|
|
28
28
|
|
|
@@ -233,8 +233,10 @@ Procedure
|
|
|
233
233
|
`git worktree list --porcelain` (taken exactly as given).
|
|
234
234
|
|
|
235
235
|
- If the branch <changeset-name/> is checked out in a
|
|
236
|
-
registered worktree, set <work-dir/> to its directory
|
|
237
|
-
<work-label/> to its path
|
|
236
|
+
registered worktree, set <work-dir/> to its directory,
|
|
237
|
+
<work-label/> to its path, and
|
|
238
|
+
<work-created>false</work-created>, as this *pre-existing*
|
|
239
|
+
worktree is never removed by this skill. If the command
|
|
238
240
|
`git -C "<work-dir/>" status --porcelain` reports any
|
|
239
241
|
output, the change set could not be committed separately,
|
|
240
242
|
so only output the following <template/> and then
|
|
@@ -271,7 +273,8 @@ Procedure
|
|
|
271
273
|
(each taken exactly as given). If the command fails, only
|
|
272
274
|
output the same error <template/> as above and then
|
|
273
275
|
immediately *STOP* processing the entire current skill.
|
|
274
|
-
Otherwise,
|
|
276
|
+
Otherwise, set <work-created>true</work-created> and only
|
|
277
|
+
output the following <template/>:
|
|
275
278
|
|
|
276
279
|
<template>
|
|
277
280
|
⧉ **ASE**: ◉ task: **<ase-task-id/>**, ◉ worktree: **<work-label/>**, ⎇ branch: **<changeset-name/>**, ▶ status: **worktree created**
|
|
@@ -486,8 +489,18 @@ Procedure
|
|
|
486
489
|
double-quote (`"`), backtick (`` ` ``), dollar (`$`), or
|
|
487
490
|
backslash (`\`) characters, and commit the change set by
|
|
488
491
|
running the command
|
|
489
|
-
`git -C "<work-dir/>" commit -m "<message/>"`.
|
|
492
|
+
`git -C "<work-dir/>" commit -m "<message/>"`. Never add
|
|
493
|
+
`Co-Authored-By` trailers to commit messages. If the commit
|
|
490
494
|
fails, treat the change set as *not* applied successfully.
|
|
495
|
+
Set <work-removed>false</work-removed>. If
|
|
496
|
+
<getopt-option-no-cleanup/> is not equal `true`,
|
|
497
|
+
<work-created/> is `true`, and the commit (if any) succeeded,
|
|
498
|
+
the change set lives on the branch alone, so remove the
|
|
499
|
+
worktree created by this run by running the commands
|
|
500
|
+
`git worktree remove "<work-dir/>"` and `git worktree prune`
|
|
501
|
+
(taken exactly as given, *never* with `--force`, so a
|
|
502
|
+
worktree with uncommitted changes is kept), and set
|
|
503
|
+
<work-removed>true</work-removed> if the removal succeeded.
|
|
491
504
|
Do not output anything.
|
|
492
505
|
|
|
493
506
|
- `attachment`: Capture the *cumulative* change set into
|
|
@@ -660,6 +673,11 @@ Procedure
|
|
|
660
673
|
The change set is uncommitted in `<context-label/>` -- review it there, then use `/ase-task-integrate` to deliver it.
|
|
661
674
|
</ase-tpl-hint>
|
|
662
675
|
</if>
|
|
676
|
+
<elseif condition="<changeset-type/> is `branch` and <work-removed/> is `true`">
|
|
677
|
+
<ase-tpl-hint level="minimal">
|
|
678
|
+
The change set is committed on branch `<changeset-name/>` -- review it via `git diff <source-commit/>...<changeset-name/>`, then use `/ase-task-integrate` to deliver it.
|
|
679
|
+
</ase-tpl-hint>
|
|
680
|
+
</elseif>
|
|
663
681
|
<elseif condition="<changeset-type/> is `branch`">
|
|
664
682
|
<ase-tpl-hint level="minimal">
|
|
665
683
|
The change set is committed on branch `<changeset-name/>` in `<work-label/>` -- review it there, then use `/ase-task-integrate` to deliver it.
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
[`--source`|`-s` *source*]
|
|
13
13
|
[`--changeset`|`-c` *changeset*]
|
|
14
14
|
[`--draft`|`-d`]
|
|
15
|
+
[`--no-cleanup`|`-K`]
|
|
15
16
|
[`--stateless`|`-S`]
|
|
16
17
|
[*id*]
|
|
17
18
|
|
|
@@ -54,7 +55,9 @@ overridable via `--changeset`:
|
|
|
54
55
|
- `branch:`*name*: the change set is *committed* onto the branch
|
|
55
56
|
*name* -- created from the source if missing -- inside the worktree
|
|
56
57
|
in which this branch is checked out, or inside a newly created
|
|
57
|
-
worktree `.ase/worktree/<name
|
|
58
|
+
worktree `.ase/worktree/<name>`, which is removed again after the
|
|
59
|
+
commit (unless `--no-cleanup` is given), while an already existing
|
|
60
|
+
worktree is always kept.
|
|
58
61
|
- `attachment:`*name*: the change set is made and verified in a
|
|
59
62
|
*temporary* worktree, detached at the source commit, and stored as
|
|
60
63
|
the attachment block of type `text/x-diff; charset=utf-8;
|
|
@@ -161,6 +164,13 @@ plan, unless `--next` pre-selects this choice.
|
|
|
161
164
|
*implementation draft* of the plan only, leaving all artifacts
|
|
162
165
|
untouched (a dry-run). Mutually exclusive with `--changeset`.
|
|
163
166
|
|
|
167
|
+
- `--no-cleanup`|`-K`:
|
|
168
|
+
For a `branch:` changeset, keep the worktree `.ase/worktree/<name>`
|
|
169
|
+
newly created by this run, instead of removing it after the commit,
|
|
170
|
+
so the change set can be reviewed, built, and tested there. Without
|
|
171
|
+
this option, the worktree is removed only if it has no uncommitted
|
|
172
|
+
changes, as the change set lives on the branch alone.
|
|
173
|
+
|
|
164
174
|
- `--stateless`|`-S`:
|
|
165
175
|
Leave the plan's `Status:` key untouched.
|
|
166
176
|
|