@rse/ase 0.9.69 → 1.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/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "homepage": "https://ase.tools",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
8
  "bugs": { "url": "https://github.com/rse/ase/issues" },
9
- "version": "0.9.69",
9
+ "version": "1.0.1",
10
10
  "license": "Apache-2.0",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",
@@ -18,9 +18,9 @@
18
18
  "devDependencies": {
19
19
  "eslint": "10.10.0",
20
20
  "@eslint/js": "10.0.1",
21
- "@typescript-eslint/parser": "8.69.0",
22
- "@typescript-eslint/eslint-plugin": "8.69.0",
23
- "typescript-eslint": "8.69.0",
21
+ "@typescript-eslint/parser": "8.70.0",
22
+ "@typescript-eslint/eslint-plugin": "8.70.0",
23
+ "typescript-eslint": "8.70.0",
24
24
  "eslint-plugin-promise": "7.3.0",
25
25
  "neostandard": "0.14.0-next.1",
26
26
  "globals": "17.12.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.9.69",
3
+ "version": "1.0.1",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.9.69",
3
+ "version": "1.0.1",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ase",
3
- "version": "0.9.69",
3
+ "version": "1.0.1",
4
4
  "description": "Agentic Software Engineering (ASE)",
5
5
  "keywords": [ "agentic", "software", "engineering" ],
6
6
  "homepage": "https://ase.tools",
@@ -6,7 +6,7 @@
6
6
  "homepage": "https://ase.tools",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
8
  "bugs": { "url": "https://github.com/rse/ase/issues" },
9
- "version": "0.9.69",
9
+ "version": "1.0.1",
10
10
  "license": "Apache-2.0",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",
@@ -20,7 +20,7 @@
20
20
  "markdownlint-cli2": "0.23.2",
21
21
  "eslint": "10.10.0",
22
22
  "@eslint/markdown": "8.0.3",
23
- "eslint-markdown": "0.14.1"
23
+ "eslint-markdown": "0.15.0"
24
24
  },
25
25
  "engines": {
26
26
  "npm": ">=10.0.0",
@@ -21,6 +21,7 @@
21
21
  ○ `ase-arch-discover`: Discover Components
22
22
 
23
23
  ⎈ **SPECIFICATION**
24
+ ○ `ase-spec-activate`: Activate Specification Know-How
24
25
  ○ `ase-spec-edit`: Edit Specification
25
26
 
26
27
  ⎈ **CODING**
@@ -0,0 +1,203 @@
1
+ ---
2
+ name: ase-spec-activate
3
+ argument-hint: "[--help|-h] [<query>]"
4
+ description: >
5
+ Activate Specification Know-How: load the SpecBook format contract,
6
+ the SpecBook schema configuration of the project, and the list of
7
+ specification (SPEC) artifacts into the context, so the specification
8
+ can be read, queried, explained, and edited ad-hoc in plain
9
+ conversation. Use *automatically* whenever the user wants to work
10
+ with the specification files -- asks what the "spec" or
11
+ "specification" says, wants to "look up", "query", "check", or
12
+ "explain" specification content, or wants a small ad-hoc change to
13
+ it -- and no dedicated specification skill (`ase-spec-edit`,
14
+ `ase-sync-import`, `ase-sync-reconcile`, `ase-sync-export`) is
15
+ invoked, as those activate the know-how implicitly.
16
+ user-invocable: true
17
+ disable-model-invocation: false
18
+ effort: medium
19
+ ---
20
+
21
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
22
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
23
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
24
+
25
+ <purpose name="ase-spec-activate">
26
+ Activate Specification Know-How
27
+ </purpose>
28
+
29
+ <expand name="getopt" arg1="ase-spec-activate">
30
+ $ARGUMENTS
31
+ </expand>
32
+
33
+ <objective>
34
+ *Activate* the know-how about the **SpecBook**-based specification --
35
+ the format contract, the schema configuration, and the artifact set --
36
+ so the specification can be worked with *ad-hoc* in plain conversation.
37
+ </objective>
38
+
39
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-format-meta.md
40
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-format-spec.md
41
+ @${CLAUDE_SKILL_DIR}/../../meta/ase-tenets.md
42
+
43
+ Procedure
44
+ ---------
45
+
46
+ This skill is *plan-less* and *read-mostly*: it *never* composes or
47
+ persists a task plan and *MUST* *NOT* call `ase_task_save(...)`. It
48
+ only *loads* know-how into the context and answers an optional *query*.
49
+ It modifies `SPEC` artifacts only when the *query* explicitly asks for
50
+ an ad-hoc change, and it *never* touches the artifact kinds `CODE`,
51
+ `DOCS`, `TASK`, `INFR`, and `OTHR`.
52
+
53
+ 1. **Initialize:**
54
+
55
+ Set <query><getopt-arguments/></query> (with any leading and
56
+ trailing whitespace stripped). Do not output anything.
57
+
58
+ 2. **Activate Format:**
59
+
60
+ The **SpecBook** format contract is already loaded into the context
61
+ through the included `ase-format-spec.md` (and its nested
62
+ `ase-format-specbook.md`). Internalize it now: the object kinds,
63
+ the object ids and `{{<id/>}}` anchors, the `[[xxx]]` references,
64
+ the `, BECAUSE ` rationale split, the Complex/Concise/Grouped
65
+ format variants, and the `Created:`/`Modified:` frontmatter block.
66
+ Do not output anything.
67
+
68
+ 3. **Activate Schema:**
69
+
70
+ 1. Set <schema-file/> to the path of the **SpecBook SCHEMA Model**
71
+ of the project (resolved as described in `ase-format-spec.md`)
72
+ and <schema-kind/> to `standard` for the bundled schema or
73
+ `custom` for a project-specific one. Do not output anything.
74
+
75
+ 2. <if condition="the content of <schema-file/> was *not* already read into the current context -- neither by an earlier run of this skill nor by a dedicated specification skill">
76
+ Read the **SpecBook SCHEMA Model** in <schema-file/> via the
77
+ `Read` tool to learn the allowed object kinds, properties,
78
+ nestings, and value constraints. Do not output anything.
79
+ </if>
80
+ <else>
81
+ Do *not* read <schema-file/> again -- its content is already
82
+ active in the context. Do not output anything.
83
+ </else>
84
+
85
+ 4. **Activate Artifacts:**
86
+
87
+ Resolve the `SPEC` artifacts by calling the
88
+ `ase_artifact_list(kind: [ "spec" ])` tool of the `ase` MCP server
89
+ *once* and reading the returned `artifacts` array of `{ kind, files
90
+ }` objects. Set <artifact-files/> to the project-relative file list
91
+ and <artifact-count/> to its length. Do *not* read the artifacts
92
+ themselves in this step. Do not output anything.
93
+
94
+ 5. **Report Activation:**
95
+
96
+ Only output the following <template/>:
97
+
98
+ <template>
99
+ <ase-tpl-boxed title="SPEC" subtitle="ACTIVATED">
100
+
101
+ **SCHEMA**: `<schema-file/>` (<schema-kind/>)
102
+ **SPEC**: `<ase-spec-basedir/>` (<artifact-count/> artifacts)
103
+
104
+ </ase-tpl-boxed>
105
+ </template>
106
+
107
+ 6. **Answer Query:**
108
+
109
+ <if condition="<query/> is empty">
110
+ Silently *skip* this item. Do not output anything about the skipping.
111
+ </if>
112
+ <else>
113
+ The <query/> argument *mainly* serves the *automatic* invocation by
114
+ the agent harness, which passes the triggering user request
115
+ *verbatim*, so activation and answer happen in *one* skill run.
116
+
117
+ Serve <query/> *ad-hoc* under the **Activated Behavior** below:
118
+ read the `SPEC` artifacts of <artifact-files/> which are related to
119
+ <query/>, resolve their `[[xxx]]` references across artifacts, and
120
+ answer the query grounded in the specification content, citing the
121
+ artifact file and object id of every statement you rely on. If
122
+ <query/> asks for a change, apply it as an *ad-hoc modification*
123
+ according to the **Activated Behavior**. Set <answer/> to the
124
+ resulting answer and only output the following <template/>:
125
+
126
+ <template>
127
+ <ase-tpl-bullet-normal/> **SPEC ANSWER**:
128
+
129
+ <answer/>
130
+ </template>
131
+ </else>
132
+
133
+ 7. **Finish:**
134
+
135
+ Finish the skill processing, but first give the closing hints by
136
+ expanding the following (which, depending on the configured
137
+ <ase-guidance-level/>, may each expand into nothing and hence emit
138
+ no output at all):
139
+
140
+ <ase-tpl-hint level="normal">
141
+ The specification know-how now stays active for this session: read, query, and ad-hoc edit
142
+ the `SPEC` artifacts in plain conversation, or use `/ase-spec-edit` for a complete one-shot edit.
143
+ </ase-tpl-hint>
144
+
145
+ <ase-tpl-hint level="verbose">
146
+ Use `/ase-sync-import -t SPEC` to bring foreign sources into the specification,
147
+ use `/ase-sync-reconcile -s SPEC` to propagate it into the other artifact kinds, and
148
+ use `/ase-sync-export` to render it into HTML or PDF.
149
+ </ase-tpl-hint>
150
+
151
+ Activated Behavior
152
+ ------------------
153
+
154
+ Once this skill has run, the following rules stay in force for the
155
+ *remainder of the session* whenever `SPEC` artifacts are read, queried,
156
+ explained, or modified *ad-hoc* in plain conversation -- i.e. *outside*
157
+ of any dedicated specification skill:
158
+
159
+ - **Resolution**: You *MUST* resolve the `SPEC` artifacts via the
160
+ `ase_artifact_list(kind: [ "spec" ])` tool of the `ase` MCP server
161
+ and *never* guess their file paths. Re-resolve them whenever
162
+ artifacts might have been added or removed.
163
+
164
+ - **Interpretation**: You *MUST* interpret the specification content
165
+ strictly according to the **SpecBook** format contract and the
166
+ **SpecBook SCHEMA Model**: object kinds, object ids and `{{<id/>}}`
167
+ anchors, properties, `[[xxx]]` references, and `, BECAUSE `
168
+ rationales. Before answering a query, resolve the `[[xxx]]`
169
+ references *across* artifacts, and ground every answer in the
170
+ specification content by citing artifact file and object id.
171
+
172
+ - **Modification**: Every ad-hoc modification of a `SPEC` artifact
173
+ *MUST* honor the **GENERIC TENETS** and the **SPECIFYING TENETS** of
174
+ the **ASE Tenets**, and *MUST* keep the artifact conformant to the
175
+ format contract and the schema: the `Created:`/`Modified:`
176
+ frontmatter block, the heading levels, the format variants, the
177
+ schema-allowed object kinds, nestings, and property keys, the object
178
+ ids and anchors, the rationale split, and the references. Call the
179
+ `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase` MCP
180
+ server *once* per change set and use its result to refresh the
181
+ `Modified:` line of every changed artifact and for both the
182
+ `Created:` and `Modified:` lines of every generated artifact.
183
+
184
+ - **Validation**: After every ad-hoc modification, call the
185
+ `ase_specbook_lint()` tool of the `ase` MCP server, fix the reported
186
+ `diagnostics` in the affected `SPEC` artifacts for at most *three*
187
+ rounds, and report any remaining diagnostics as
188
+ `<file/>:<line/>:<column/>: <message/>` lines.
189
+
190
+ - **Restriction**: An ad-hoc modification of the specification *MUST*
191
+ stay restricted to the `SPEC` artifacts -- the artifact kinds
192
+ `CODE`, `DOCS`, `TASK`, `INFR`, and `OTHR` are *never* touched as
193
+ part of it. For a substantial or multi-artifact change, point the
194
+ user to `/ase-spec-edit` instead of applying it ad-hoc.
195
+
196
+ - **Tandem**: The dedicated specification skills `ase-spec-edit`,
197
+ `ase-sync-import`, `ase-sync-reconcile`, and `ase-sync-export`
198
+ include the format contract themselves and activate the know-how
199
+ *implicitly*. Whenever one of them is invoked, its own procedure
200
+ takes *precedence* over these rules, and this skill *MUST* *NOT* be
201
+ invoked from within it. Conversely, a run of this skill *never*
202
+ replaces such a dedicated skill when the user explicitly asks for
203
+ it.
@@ -0,0 +1,76 @@
1
+
2
+ ## NAME
3
+
4
+ `ase-spec-activate` - Activate Specification Know-How
5
+
6
+ ## SYNOPSIS
7
+
8
+ `ase-spec-activate`
9
+ [`--help`|`-h`]
10
+ [*query*]
11
+
12
+ ## DESCRIPTION
13
+
14
+ The `ase-spec-activate` skill activates the know-how about the
15
+ *SpecBook*-based specification (`SPEC`) of the project in the current
16
+ session: it loads the *SpecBook* format contract, reads the *SpecBook*
17
+ schema configuration of the project (the standard schema bundled with
18
+ *ASE*, or the custom schema configured via `project.artifact.spec.schema`),
19
+ and resolves the list of `SPEC` artifacts in the configured specification
20
+ base directory. The activation is reported in a `SPEC ACTIVATED` box,
21
+ listing the schema file (marked `standard` or `custom`) and the base
22
+ directory with the number of resolved artifacts.
23
+
24
+ Once activated, the specification can be worked with *ad-hoc* in plain
25
+ conversation for the remainder of the session: reading, querying, and
26
+ explaining its content (with `[[xxx]]` references resolved across
27
+ artifacts and every answer grounded in artifact file and object id), and
28
+ applying small changes to it (kept conformant to the format contract and
29
+ the schema, with refreshed `Modified:` timestamps and *SpecBook* linting
30
+ afterwards). Ad-hoc changes stay strictly restricted to the `SPEC`
31
+ artifacts; substantial changes are deferred to `ase-spec-edit`.
32
+
33
+ The skill is both user-callable and model-callable: the model invokes it
34
+ *automatically* whenever the user wants to work with the specification
35
+ files without invoking a dedicated specification skill. It works in
36
+ tandem with `ase-spec-edit`, `ase-sync-import`, `ase-sync-reconcile`, and
37
+ `ase-sync-export`, which include the format contract themselves and hence
38
+ activate the know-how implicitly -- their own procedures take precedence
39
+ whenever they run.
40
+
41
+ ## ARGUMENTS
42
+
43
+ - *query*:
44
+ Optional question about, or small ad-hoc change to, the
45
+ specification, served directly after the activation. When omitted,
46
+ the skill only activates the know-how. This argument mainly serves
47
+ the automatic invocation by the agent harness: the user's request
48
+ which triggered the activation is passed through as the *query*,
49
+ so activation and answer happen in one skill run under the skill's
50
+ rules instead of in the plain conversation afterwards.
51
+
52
+ ## SCENARIOS
53
+
54
+ - You want to ask what the specification says about a topic
55
+ - You want to look up, check, or explain specification content in plain conversation
56
+ - You want a small ad-hoc change applied to the specification
57
+ - You want the SpecBook know-how loaded before working with the specification files
58
+
59
+ ## EXAMPLES
60
+
61
+ Activate the specification know-how only:
62
+
63
+ ```text
64
+ ❯ /ase-spec-activate
65
+ ```
66
+
67
+ Activate and directly answer a question about the specification:
68
+
69
+ ```text
70
+ ❯ /ase-spec-activate which personas does the specification define?
71
+ ```
72
+
73
+ ## SEE ALSO
74
+
75
+ [`ase-spec-edit`](../ase-spec-edit/help.md), [`ase-sync-import`](../ase-sync-import/help.md), [`ase-sync-reconcile`](../ase-sync-reconcile/help.md),
76
+ [`ase-sync-export`](../ase-sync-export/help.md).
@@ -133,5 +133,5 @@ Loop over multiple specification edits inside a dedicated Git worktree:
133
133
 
134
134
  ## SEE ALSO
135
135
 
136
- [`ase-code-edit`](../ase-code-edit/help.md), [`ase-sync-import`](../ase-sync-import/help.md), [`ase-sync-reconcile`](../ase-sync-reconcile/help.md),
137
- [`ase-sync-export`](../ase-sync-export/help.md), [`ase-task-grill`](../ase-task-grill/help.md).
136
+ [`ase-spec-activate`](../ase-spec-activate/help.md), [`ase-code-edit`](../ase-code-edit/help.md), [`ase-sync-import`](../ase-sync-import/help.md),
137
+ [`ase-sync-reconcile`](../ase-sync-reconcile/help.md), [`ase-sync-export`](../ase-sync-export/help.md), [`ase-task-grill`](../ase-task-grill/help.md).