@rse/ase 0.9.51 → 0.9.52
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-task.js +7 -2
- package/package.json +7 -7
- 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/etc/stx.conf +2 -2
- package/plugin/meta/ase-common-dissect.md +110 -0
- package/plugin/meta/ase-common-task.md +5 -3
- package/plugin/meta/ase-control.md +53 -0
- package/plugin/meta/ase-format-task.md +6 -0
- package/plugin/meta/ase-skill.md +8 -8
- package/plugin/package.json +2 -2
- package/plugin/skills/ase-arch-analyze/SKILL.md +23 -12
- package/plugin/skills/ase-arch-analyze/help.md +16 -0
- package/plugin/skills/ase-arch-discover/SKILL.md +2 -2
- package/plugin/skills/ase-code-analyze/SKILL.md +27 -18
- package/plugin/skills/ase-code-analyze/help.md +15 -0
- package/plugin/skills/ase-code-craft/SKILL.md +2 -2
- package/plugin/skills/ase-code-dissect/SKILL.md +380 -0
- package/plugin/skills/ase-code-dissect/help.md +121 -0
- package/plugin/skills/ase-code-explain/SKILL.md +2 -2
- package/plugin/skills/ase-code-insight/SKILL.md +2 -2
- package/plugin/skills/ase-code-lint/SKILL.md +2 -2
- package/plugin/skills/ase-code-refactor/SKILL.md +2 -2
- package/plugin/skills/ase-code-resolve/SKILL.md +2 -2
- package/plugin/skills/ase-docs-distill/SKILL.md +2 -2
- package/plugin/skills/ase-docs-proofread/SKILL.md +2 -2
- package/plugin/skills/ase-help-intent/SKILL.md +2 -2
- package/plugin/skills/ase-help-skill/SKILL.md +2 -2
- package/plugin/skills/ase-help-skill/catalog.md +3 -0
- package/plugin/skills/ase-meta-brainstorm/SKILL.md +2 -2
- package/plugin/skills/ase-meta-changelog/SKILL.md +2 -2
- package/plugin/skills/ase-meta-chat/SKILL.md +2 -2
- package/plugin/skills/ase-meta-commit/SKILL.md +2 -2
- package/plugin/skills/ase-meta-config/SKILL.md +2 -2
- package/plugin/skills/ase-meta-diaboli/SKILL.md +2 -2
- package/plugin/skills/ase-meta-diff/SKILL.md +2 -2
- package/plugin/skills/ase-meta-eli5/SKILL.md +2 -2
- package/plugin/skills/ase-meta-evaluate/SKILL.md +2 -2
- package/plugin/skills/ase-meta-proximity/SKILL.md +2 -2
- package/plugin/skills/ase-meta-quorum/SKILL.md +2 -2
- package/plugin/skills/ase-meta-quotes/SKILL.md +2 -2
- package/plugin/skills/ase-meta-review/SKILL.md +2 -2
- package/plugin/skills/ase-meta-search/SKILL.md +2 -2
- package/plugin/skills/ase-meta-steelman/SKILL.md +2 -2
- package/plugin/skills/ase-meta-why/SKILL.md +2 -2
- package/plugin/skills/ase-meta-workflow/SKILL.md +378 -0
- package/plugin/skills/ase-meta-workflow/help.md +117 -0
- package/plugin/skills/ase-meta-workflow/sample.md +70 -0
- package/plugin/skills/ase-meta-workflow/workflow.txt +97 -0
- package/plugin/skills/ase-sync-export/SKILL.md +2 -2
- package/plugin/skills/ase-sync-import/SKILL.md +2 -2
- package/plugin/skills/ase-sync-reconcile/SKILL.md +2 -2
- package/plugin/skills/ase-task-condense/SKILL.md +26 -6
- package/plugin/skills/ase-task-delete/SKILL.md +2 -2
- package/plugin/skills/ase-task-dissect/SKILL.md +299 -0
- package/plugin/skills/ase-task-dissect/help.md +114 -0
- package/plugin/skills/ase-task-edit/SKILL.md +6 -4
- package/plugin/skills/ase-task-grill/SKILL.md +6 -4
- package/plugin/skills/ase-task-id/SKILL.md +2 -2
- package/plugin/skills/ase-task-implement/SKILL.md +2 -2
- package/plugin/skills/ase-task-list/SKILL.md +2 -2
- package/plugin/skills/ase-task-preflight/SKILL.md +2 -2
- package/plugin/skills/ase-task-reboot/SKILL.md +12 -6
- package/plugin/skills/ase-task-rename/SKILL.md +2 -2
- package/plugin/skills/ase-task-view/SKILL.md +2 -2
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
|
|
2
|
+
## NAME
|
|
3
|
+
|
|
4
|
+
`ase-meta-workflow` - Generate a Workflow Skill
|
|
5
|
+
|
|
6
|
+
## SYNOPSIS
|
|
7
|
+
|
|
8
|
+
`ase-meta-workflow`
|
|
9
|
+
[`--help`|`-h`]
|
|
10
|
+
[`--scope`|`-s` `local`|`user`]
|
|
11
|
+
[`--force`|`-f`]
|
|
12
|
+
*skill-name*
|
|
13
|
+
*workflow-description*
|
|
14
|
+
|
|
15
|
+
## DESCRIPTION
|
|
16
|
+
|
|
17
|
+
The `ase-meta-workflow` skill *generates* a new, regular skill of the
|
|
18
|
+
currently used *agent tool* -- written in the style of *ASE* skills --
|
|
19
|
+
which orchestrates the workflow given as *workflow-description*.
|
|
20
|
+
|
|
21
|
+
The *workflow-description* is treated as a combination of *sequential*
|
|
22
|
+
actions, *concurrent* actions, *sub-agent* invocations, *skill*
|
|
23
|
+
invocations, and arbitrary other action statements. The skill maps them
|
|
24
|
+
onto the ASE control constructs: top-level sequential actions become
|
|
25
|
+
numbered `<step>` items inside a single `<flow>`, concurrent actions
|
|
26
|
+
become a `<parallel>` block, sub-agent invocations become `<agent>`
|
|
27
|
+
elements, and skill invocations become `<skill>` elements. Whenever a
|
|
28
|
+
`<parallel>` block contains at least one `<agent isolation="worktree">`,
|
|
29
|
+
a dedicated consolidation step holding `<agent-consolidation/>` is
|
|
30
|
+
appended right after it, so the Git WorkTrees of the concurrent
|
|
31
|
+
sub-agents are merged and removed again. Every top-level `<skill>`
|
|
32
|
+
invocation is additionally enclosed in its own `<agent>` element --
|
|
33
|
+
without `isolation` and with `run_in_background=false` -- so the
|
|
34
|
+
`TaskCreate` and `TaskUpdate` tool calls of the called skill cannot
|
|
35
|
+
interfere with the task tracking of the generated workflow skill itself.
|
|
36
|
+
|
|
37
|
+
To keep the emitted `<skill>` invocations correct, the skill consults the
|
|
38
|
+
accumulated manual pages of all ASE skills and takes every option and
|
|
39
|
+
argument verbatim from them. To keep the emitted flow meaningful, it
|
|
40
|
+
consults the *ASE workflow graph* -- a list of `<from> -> <to>`
|
|
41
|
+
transitions between ASE skills and logical states such as `START`,
|
|
42
|
+
`SKETCH`, `TASK`, `ARTIFACT`, and `END`. That graph *guides* the
|
|
43
|
+
derivation but never restricts it: arbitrary non-ASE actions and
|
|
44
|
+
unlisted transitions stay allowed.
|
|
45
|
+
|
|
46
|
+
The generated skill is *independent* of the ASE plugin installation path:
|
|
47
|
+
it loads the ASE meta definitions through the `ase meta` command instead
|
|
48
|
+
of plugin-relative includes.
|
|
49
|
+
|
|
50
|
+
The skill is *portable* across the supported agent tools, because
|
|
51
|
+
*Anthropic Claude Code*, *GitHub Copilot*, and *OpenAI Codex* differ in
|
|
52
|
+
three relevant ways, each of which is dispatched on the currently used
|
|
53
|
+
agent tool:
|
|
54
|
+
|
|
55
|
+
- the *target directory*, because every agent tool discovers its skills
|
|
56
|
+
in its own locations,
|
|
57
|
+
|
|
58
|
+
- the *frontmatter fields*, because every agent tool accepts its own
|
|
59
|
+
field set and its own `allowed-tools` permission grammar, and
|
|
60
|
+
|
|
61
|
+
- the *preamble*, because only *Anthropic Claude Code* expands the
|
|
62
|
+
``!`...`` construct before the skill content reaches the model. The
|
|
63
|
+
other agent tools receive it verbatim and would silently leave it
|
|
64
|
+
unexpanded, so they instead get an explicit instruction to run
|
|
65
|
+
`ase meta ...` themselves before anything else.
|
|
66
|
+
|
|
67
|
+
## OPTIONS
|
|
68
|
+
|
|
69
|
+
`--scope`|`-s` `local`|`user`:
|
|
70
|
+
Where the generated skill is stored. With `local` (the default),
|
|
71
|
+
it is written into the current project, where it can be committed
|
|
72
|
+
and reviewed alongside the code. With `user`, it is written into the
|
|
73
|
+
personal skill directory, where it is available across all projects.
|
|
74
|
+
The concrete directory depends on the currently used agent tool:
|
|
75
|
+
`.claude/skills/` and `~/.claude/skills/` under *Anthropic Claude
|
|
76
|
+
Code*, `.github/skills/` and `~/.copilot/skills/` under *GitHub
|
|
77
|
+
Copilot*, and `.agents/skills/` and `~/.codex/skills/` under *OpenAI
|
|
78
|
+
Codex*.
|
|
79
|
+
|
|
80
|
+
`--force`|`-f`:
|
|
81
|
+
Overwrite an already existing skill. Without this option, the skill
|
|
82
|
+
refuses with an error as soon as the target `SKILL.md` exists, so
|
|
83
|
+
hand-edited skills are never lost silently.
|
|
84
|
+
|
|
85
|
+
## ARGUMENTS
|
|
86
|
+
|
|
87
|
+
*skill-name*:
|
|
88
|
+
Name of the skill to generate, matching `^[a-zA-Z][a-zA-Z0-9_-]*$`.
|
|
89
|
+
It is used as the directory name, as the frontmatter `name`, and as
|
|
90
|
+
the resulting `/`*skill-name* command (respectively the
|
|
91
|
+
`$`*skill-name* mention under *OpenAI Codex*).
|
|
92
|
+
|
|
93
|
+
*workflow-description*:
|
|
94
|
+
Free-text description of the workflow the generated skill should
|
|
95
|
+
perform. Mentioning that actions run "in parallel", that they are
|
|
96
|
+
dispatched "in a sub-agent", or naming concrete `ase-xxx-xxx` skills
|
|
97
|
+
steers the derived structure accordingly.
|
|
98
|
+
|
|
99
|
+
## EXAMPLES
|
|
100
|
+
|
|
101
|
+
Generate a project-local skill which analyzes the code and then resolves
|
|
102
|
+
every finding concurrently in isolated worktrees:
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
❯ /ase-meta-workflow optimizer run ase-code-analyze, then for each finding P<n> resolve, implement and delete it in a parallel isolated sub-agent
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Generate a user-wide skill and overwrite a previous generation:
|
|
109
|
+
|
|
110
|
+
```text
|
|
111
|
+
❯ /ase-meta-workflow --scope user --force release lint the code, update the changelog, then propose a commit message
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## SEE ALSO
|
|
115
|
+
|
|
116
|
+
[`ase-help-intent`](../ase-help-intent/help.md), [`ase-help-skill`](../ase-help-skill/help.md),
|
|
117
|
+
[`ase-code-analyze`](../ase-code-analyze/help.md), [`ase-code-resolve`](../ase-code-resolve/help.md), [`ase-task-implement`](../ase-task-implement/help.md).
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: optimizer
|
|
3
|
+
argument-hint: "[-i <id>] <context>"
|
|
4
|
+
description: >
|
|
5
|
+
Resolve problems.
|
|
6
|
+
user-invocable: true
|
|
7
|
+
disable-model-invocation: false
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- "Bash(ase meta *)"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
!`ase meta control skill getopt`
|
|
13
|
+
|
|
14
|
+
<purpose name="optimizer">
|
|
15
|
+
Analyze and Resolve Source Code Problems
|
|
16
|
+
</purpose>
|
|
17
|
+
|
|
18
|
+
<expand name="getopt"
|
|
19
|
+
arg1="optimizer"
|
|
20
|
+
arg2="--id|-i <id>=optimizer">
|
|
21
|
+
$ARGUMENTS
|
|
22
|
+
</expand>
|
|
23
|
+
|
|
24
|
+
<flow>
|
|
25
|
+
|
|
26
|
+
1. <step id="STEP 1: Analyze Code">
|
|
27
|
+
|
|
28
|
+
<agent description="Analyze Code"
|
|
29
|
+
subagent_type="general-purpose"
|
|
30
|
+
run_in_background=false>
|
|
31
|
+
|
|
32
|
+
Run <skill name="ase-code-analyze" args="--prefix <id/> <getopt-arguments/>"/>
|
|
33
|
+
|
|
34
|
+
</agent>
|
|
35
|
+
|
|
36
|
+
</step>
|
|
37
|
+
|
|
38
|
+
2. <step id="STEP 2: Resolve Code Problems">
|
|
39
|
+
|
|
40
|
+
<parallel>
|
|
41
|
+
|
|
42
|
+
For each `P<n/>` in the result set, in ascending order and strictly *one at a time*:
|
|
43
|
+
|
|
44
|
+
1. Call the Agent:
|
|
45
|
+
|
|
46
|
+
<agent description="Reresolve P<n/>"
|
|
47
|
+
subagent_type="general-purpose"
|
|
48
|
+
isolation="worktree"
|
|
49
|
+
run_in_background=true>
|
|
50
|
+
|
|
51
|
+
1. Run <skill name="ase:ase-code-resolve" args="-a <id/>-P<n/>"/>
|
|
52
|
+
|
|
53
|
+
2. Run <skill name="ase:ase-task-implement" args="<id/>-P<n/>"/>
|
|
54
|
+
|
|
55
|
+
3. Run <skill name="ase:ase-task-delete" args="<id/>-P<n/>"/>
|
|
56
|
+
|
|
57
|
+
</agent>
|
|
58
|
+
|
|
59
|
+
</parallel>
|
|
60
|
+
|
|
61
|
+
</step>
|
|
62
|
+
|
|
63
|
+
3. <step id="STEP 3: Result Consolidation">
|
|
64
|
+
|
|
65
|
+
<agent-consolidation/>
|
|
66
|
+
|
|
67
|
+
</step>
|
|
68
|
+
|
|
69
|
+
</flow>
|
|
70
|
+
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
START -> ase-help-skill
|
|
2
|
+
START -> ase-meta-config
|
|
3
|
+
START -> ase-meta-why
|
|
4
|
+
START -> ase-meta-eli5
|
|
5
|
+
START -> ase-meta-evaluate
|
|
6
|
+
START -> ase-meta-diaboli
|
|
7
|
+
START -> ase-meta-steelman
|
|
8
|
+
START -> ase-meta-quorum
|
|
9
|
+
START -> ase-meta-chat
|
|
10
|
+
START -> ase-meta-search
|
|
11
|
+
START -> ase-meta-brainstorm
|
|
12
|
+
START -> ase-meta-compat
|
|
13
|
+
START -> ase-help-intent
|
|
14
|
+
START -> ase-arch-discover
|
|
15
|
+
START -> ase-code-insight
|
|
16
|
+
START -> ase-code-explain
|
|
17
|
+
START -> ase-code-lint
|
|
18
|
+
START -> ase-docs-distill
|
|
19
|
+
START -> ase-docs-proofread
|
|
20
|
+
START -> ase-meta-review
|
|
21
|
+
START -> ase-meta-diff
|
|
22
|
+
START -> ase-meta-changelog
|
|
23
|
+
START -> ase-meta-commit
|
|
24
|
+
START -> ase-meta-proximity
|
|
25
|
+
START -> ase-meta-workflow
|
|
26
|
+
START -> ase-code-dissect
|
|
27
|
+
ase-help-skill -> END
|
|
28
|
+
ase-meta-config -> END
|
|
29
|
+
ase-meta-why -> END
|
|
30
|
+
ase-meta-eli5 -> END
|
|
31
|
+
ase-meta-evaluate -> END
|
|
32
|
+
ase-meta-diaboli -> END
|
|
33
|
+
ase-meta-steelman -> END
|
|
34
|
+
ase-meta-quorum -> END
|
|
35
|
+
ase-meta-chat -> END
|
|
36
|
+
ase-meta-search -> END
|
|
37
|
+
ase-meta-brainstorm -> END
|
|
38
|
+
ase-meta-compat -> END
|
|
39
|
+
ase-help-intent -> END
|
|
40
|
+
ase-arch-discover -> END
|
|
41
|
+
ase-code-insight -> END
|
|
42
|
+
ase-code-explain -> END
|
|
43
|
+
ase-code-lint -> END
|
|
44
|
+
ase-docs-distill -> END
|
|
45
|
+
ase-docs-proofread -> END
|
|
46
|
+
ase-meta-review -> END
|
|
47
|
+
ase-meta-diff -> END
|
|
48
|
+
ase-meta-changelog -> END
|
|
49
|
+
ase-meta-commit -> END
|
|
50
|
+
ase-meta-proximity -> END
|
|
51
|
+
ase-meta-workflow -> END
|
|
52
|
+
ase-code-dissect -> END
|
|
53
|
+
START -> SKETCH
|
|
54
|
+
START -> TASK
|
|
55
|
+
START -> ase-sync-import
|
|
56
|
+
START -> ARTIFACT
|
|
57
|
+
ARTIFACT -> ase-arch-analyze
|
|
58
|
+
ARTIFACT -> ase-code-analyze
|
|
59
|
+
ase-arch-analyze -> SKETCH
|
|
60
|
+
ase-code-analyze -> SKETCH
|
|
61
|
+
SKETCH -> ase-code-craft
|
|
62
|
+
SKETCH -> ase-code-refactor
|
|
63
|
+
SKETCH -> ase-code-resolve
|
|
64
|
+
ase-code-craft -> APPROACHES
|
|
65
|
+
ase-code-refactor -> APPROACHES
|
|
66
|
+
ase-code-resolve -> APPROACHES
|
|
67
|
+
APPROACHES -> TASK
|
|
68
|
+
TASK -> ase-task-id
|
|
69
|
+
ase-task-id -> TASK
|
|
70
|
+
TASK -> ase-task-edit
|
|
71
|
+
ase-task-edit -> TASK
|
|
72
|
+
TASK -> ase-task-grill
|
|
73
|
+
ase-task-grill -> TASK
|
|
74
|
+
TASK -> ase-task-condense
|
|
75
|
+
ase-task-condense -> TASK
|
|
76
|
+
TASK -> ase-task-dissect
|
|
77
|
+
ase-task-dissect -> TASK
|
|
78
|
+
TASK -> ase-task-reboot
|
|
79
|
+
ase-task-reboot -> TASK
|
|
80
|
+
TASK -> ase-task-implement
|
|
81
|
+
TASK -> ase-task-preflight
|
|
82
|
+
ase-task-preflight -> TASK
|
|
83
|
+
TASK -> ase-task-view
|
|
84
|
+
TASK -> ase-task-list
|
|
85
|
+
TASK -> ase-task-rename
|
|
86
|
+
TASK -> ase-task-delete
|
|
87
|
+
ase-task-implement -> ARTIFACT
|
|
88
|
+
ase-task-view -> END
|
|
89
|
+
ase-task-list -> END
|
|
90
|
+
ase-task-rename -> END
|
|
91
|
+
ase-task-delete -> END
|
|
92
|
+
ase-sync-import -> ARTIFACT
|
|
93
|
+
ARTIFACT -> ase-sync-export
|
|
94
|
+
ARTIFACT -> ase-sync-reconcile
|
|
95
|
+
ase-sync-reconcile -> ARTIFACT
|
|
96
|
+
TASK -> END
|
|
97
|
+
ARTIFACT -> END
|
|
@@ -17,9 +17,9 @@ allowed-tools:
|
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
18
18
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
19
19
|
|
|
20
|
-
<
|
|
20
|
+
<purpose name="ase-sync-export">
|
|
21
21
|
Export Artifact Set to Side-by-Side Files
|
|
22
|
-
</
|
|
22
|
+
</purpose>
|
|
23
23
|
|
|
24
24
|
<expand name="getopt"
|
|
25
25
|
arg1="ase-sync-export"
|
|
@@ -16,9 +16,9 @@ effort: xhigh
|
|
|
16
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
18
18
|
|
|
19
|
-
<
|
|
19
|
+
<purpose name="ase-sync-import">
|
|
20
20
|
Import Foreign Sources into Artifact Set
|
|
21
|
-
</
|
|
21
|
+
</purpose>
|
|
22
22
|
|
|
23
23
|
<expand name="getopt"
|
|
24
24
|
arg1="ase-sync-import"
|
|
@@ -16,9 +16,9 @@ effort: xhigh
|
|
|
16
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
17
17
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
18
18
|
|
|
19
|
-
<
|
|
19
|
+
<purpose name="ase-sync-reconcile">
|
|
20
20
|
Reconcile Artifact Set to Artifact Set
|
|
21
|
-
</
|
|
21
|
+
</purpose>
|
|
22
22
|
|
|
23
23
|
<expand name="getopt"
|
|
24
24
|
arg1="ase-sync-reconcile"
|
|
@@ -15,9 +15,9 @@ effort: high
|
|
|
15
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md
|
|
16
16
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
17
17
|
|
|
18
|
-
<
|
|
18
|
+
<purpose name="ase-task-condense">
|
|
19
19
|
Condense a Task Plan
|
|
20
|
-
</
|
|
20
|
+
</purpose>
|
|
21
21
|
|
|
22
22
|
<expand name="getopt"
|
|
23
23
|
arg1="ase-task-condense"
|
|
@@ -142,17 +142,37 @@ Set <args></args> (set args to empty).
|
|
|
142
142
|
- *Drop* articles ("a", "an", "the") and *replace*
|
|
143
143
|
conjunctions with short separate clauses where this
|
|
144
144
|
shortens the text without introducing ambiguity.
|
|
145
|
-
- *Re-wrap* the shortened free-text to the ~
|
|
146
|
-
per-line convention
|
|
145
|
+
- *Re-wrap* the shortened free-text to the ~100-character-
|
|
146
|
+
per-line convention of the plan <format/>, but *never*
|
|
147
|
+
break a line *inside* an inline code span.
|
|
147
148
|
- *Merge* genuinely-redundant bullets (the same aspect
|
|
148
149
|
restated) and *drop* pure duplication - but *only* when
|
|
149
150
|
truly redundant; *never* lose a distinct aspect.
|
|
150
151
|
|
|
151
|
-
3. *
|
|
152
|
+
3. *Normalize the rendering artifacts*: the loaded
|
|
153
|
+
<task-content/> is the *rendering-prepared* variant of the
|
|
154
|
+
plan, whose artifacts *MUST NOT* be persisted back. Restore
|
|
155
|
+
the *authoring form* of the plan <format/> before saving:
|
|
156
|
+
|
|
157
|
+
- A bullet point rendered as `◯ ` is written back as
|
|
158
|
+
`- ` -- the condensed <task-content/> *MUST NOT*
|
|
159
|
+
contain a single `◯` marker.
|
|
160
|
+
|
|
161
|
+
- An inline code span which the rendering split across two
|
|
162
|
+
physical lines into two spans (`` `<head/>` `` at a line
|
|
163
|
+
end and `` `<tail/>` `` at the next line start) is
|
|
164
|
+
written back as the *one* original span
|
|
165
|
+
`` `<head/> <tail/>` ``, and the line is then broken
|
|
166
|
+
*before* its opening backtick.
|
|
167
|
+
|
|
168
|
+
This normalization is *not* a semantic change and hence
|
|
169
|
+
*never* violates the preserve-exactly rule 1.
|
|
170
|
+
|
|
171
|
+
4. *Persona override*: this condense ruleset *always wins* for
|
|
152
172
|
the plan content. This ruleset-based compression is applied
|
|
153
173
|
*regardless* of the currently active session persona style.
|
|
154
174
|
|
|
155
|
-
|
|
175
|
+
5. *Hard guardrail - semantics preserved EXACTLY*: condensing
|
|
156
176
|
*only* shortens wording. It *MUST NOT* drop, merge (except
|
|
157
177
|
truly-redundant bullets per sub-item 2), reorder, or alter
|
|
158
178
|
*any* factual claim, requirement, file path, rule, or
|
|
@@ -14,9 +14,9 @@ effort: high
|
|
|
14
14
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
|
|
15
15
|
@${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
|
|
16
16
|
|
|
17
|
-
<
|
|
17
|
+
<purpose name="ase-task-delete">
|
|
18
18
|
Delete a Task Plan
|
|
19
|
-
</
|
|
19
|
+
</purpose>
|
|
20
20
|
|
|
21
21
|
<expand name="getopt" arg1="ase-task-delete">
|
|
22
22
|
$ARGUMENTS
|