ase-spec-activate
Activate Specification Know-How: load the SpecBook format contract, the SpecBook schema configuration of the project, and the list of specification (SPEC) artifacts into the context, so the specificat
SKILL.mdplugin/skills/ase-spec-activate/SKILL.md
GitHub@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
<purpose name="ase-spec-activate"> Activate Specification Know-How </purpose> <expand name="getopt" arg1="ase-spec-activate"> $ARGUMENTS </expand> <objective> *Activate* the know-how about the **SpecBook**-based specification -- the format contract, the schema configuration, and the artifact set -- so the specification can be worked with *ad-hoc* in plain conversation. </objective>@${CLAUDE_SKILL_DIR}/../../meta/ase-format-meta.md @${CLAUDE_SKILL_DIR}/../../meta/ase-format-spec.md @${CLAUDE_SKILL_DIR}/../../meta/ase-tenets.md
Procedure
This skill is plan-less and read-mostly: it never composes or
persists a task plan and MUST NOT call ase_task_save(...). It
only loads know-how into the context and answers an optional query.
It modifies SPEC artifacts only when the query explicitly asks for
an ad-hoc change, and it never touches the artifact kinds CODE,
DOCS, TASK, INFR, and OTHR.
Initialize:
Set <query><getopt-arguments/></query> (with any leading and trailing whitespace stripped). Do not output anything.
Activate Format:
The SpecBook format contract is already loaded into the context through the included
ase-format-spec.md(and its nestedase-format-specbook.md). Internalize it now: the object kinds, the object ids and{{<id/>}}anchors, the[[xxx]]references, the, BECAUSErationale split, the Complex/Concise/Grouped format variants, and theCreated:/Modified:frontmatter block. Do not output anything.Activate Schema:
Set <schema-files/> to the list of file paths constituting the SpecBook SCHEMA Model of the project (resolved as described in
ase-format-spec.md), each annotated withstandardfor the bundled schema orcustomfor a project-specific one. Do not output anything.- <if condition="the content of a file of <schema-files/> was *not* already read into the current context -- neither by an earlier run of this skill nor by a dedicated specification skill"> Read those files of the **SpecBook SCHEMA Model** in <schema-files/> via the `Read` tool to learn the allowed object kinds, properties, nestings, and value constraints. Do not output anything. </if> <else> Do *not* read the files of <schema-files/> again -- their content is already active in the context. Do not output anything. </else>
Activate Artifacts:
Resolve the
SPECartifacts by calling thease_artifact_list(kind: [ "spec" ])tool of theaseMCP server once and reading the returnedartifactsarray of{ kind, files }objects. Set <artifact-files/> to the project-relative file list and <artifact-count/> to its length. Do not read the artifacts themselves in this step. Do not output anything.Report Activation:
Only output the following <template/>:
<template> <ase-tpl-boxed title="SPEC" subtitle="ACTIVATED">SCHEMA: <schema-files/> (one
</ase-tpl-boxed> </template><file/>(standard|custom) entry per line, aligned) SPEC:<ase-spec-basedir/>(<artifact-count/> artifacts)Answer Query:
<if condition="<query/> is empty"> Silently *skip* this item. Do not output anything about the skipping. </if> <else> The <query/> argument *mainly* serves the *automatic* invocation by the agent harness, which passes the triggering user request *verbatim*, so activation and answer happen in *one* skill run.Serve <query/> ad-hoc under the Activated Behavior below: read the
<template> <ase-tpl-bullet-normal/> **SPEC ANSWER**: <answer/> </template> </else>SPECartifacts of <artifact-files/> which are related to <query/>, resolve their[[xxx]]references across artifacts, and answer the query grounded in the specification content, citing the artifact file and object id of every statement you rely on. If <query/> asks for a change, apply it as an ad-hoc modification according to the Activated Behavior. Set <answer/> to the resulting answer and only output the following <template/>:Finish:
Finish the skill processing, but first give the closing hints by expanding the following (which, depending on the configured <ase-guidance-level/>, may each expand into nothing and hence emit no output at all):
<ase-tpl-hint level="normal"> The specification know-how now stays active for this session: read, query, and ad-hoc edit the `SPEC` artifacts in plain conversation, or use `/ase-spec-edit` for a complete one-shot edit. </ase-tpl-hint> <ase-tpl-hint level="verbose"> Use `/ase-sync-import -t SPEC` to bring foreign sources into the specification, use `/ase-sync-reconcile -s SPEC` to propagate it into the other artifact kinds, and use `/ase-sync-export` to render it into HTML or PDF. </ase-tpl-hint>
Activated Behavior
Once this skill has run, the following rules stay in force for the
remainder of the session whenever SPEC artifacts are read, queried,
explained, or modified ad-hoc in plain conversation -- i.e. outside
of any dedicated specification skill:
Resolution: You MUST resolve the
SPECartifacts via thease_artifact_list(kind: [ "spec" ])tool of theaseMCP server and never guess their file paths. Re-resolve them whenever artifacts might have been added or removed.Interpretation: You MUST interpret the specification content strictly according to the SpecBook format contract and the SpecBook SCHEMA Model: object kinds, object ids and
{{<id/>}}anchors, properties,[[xxx]]references, and, BECAUSErationales. Before answering a query, resolve the[[xxx]]references across artifacts, and ground every answer in the specification content by citing artifact file and object id.Modification: Every ad-hoc modification of a
SPECartifact MUST honor the GENERIC TENETS and the SPECIFYING TENETS of the ASE Tenets, and MUST keep the artifact conformant to the format contract and the schema: theCreated:/Modified:frontmatter block, the heading levels, the format variants, the schema-allowed object kinds, nestings, and property keys, the object ids and anchors, the rationale split, and the references. Call thease_timestamp(format: "yyyy-LL-dd HH:mm")tool of theaseMCP server once per change set and use its result to refresh theModified:line of every changed artifact and for both theCreated:andModified:lines of every generated artifact.Validation: After every ad-hoc modification, call the
ase_specbook_lint()tool of theaseMCP server, fix the reporteddiagnosticsin the affectedSPECartifacts for at most three rounds, and report any remaining diagnostics as<file/>:<line/>:<column/>: <message/>lines.Restriction: An ad-hoc modification of the specification MUST stay restricted to the
SPECartifacts -- the artifact kindsCODE,DOCS,TASK,INFR, andOTHRare never touched as part of it. For a substantial or multi-artifact change, point the user to/ase-spec-editinstead of applying it ad-hoc.Tandem: The dedicated specification skills
ase-spec-edit,ase-sync-import,ase-sync-reconcile, andase-sync-exportinclude the format contract themselves and activate the know-how implicitly. Whenever one of them is invoked, its own procedure takes precedence over these rules, and this skill MUST NOT be invoked from within it. Conversely, a run of this skill never replaces such a dedicated skill when the user explicitly asks for it.