Skip to content

/ase-sync-export

Export artifact content into side-by-side, ready-to-consume files, one per artifact that declares an export. Use when the user wants to "export", "render", or "materialize" artifacts like SPEC or ARCH into derived files such as diagrams or tables.

From plugin
4448 skills
shell
$ npx -y skills add rse/ase --skill ase-sync-export --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/ase-sync-export
How auto-invocation works

Context preview

The summary Claude sees to decide when to auto-load this skill.

Export artifact content into side-by-side, ready-to-consume files, one per artifact that declares an export. Use when the user wants to "export", "render", or "materialize" artifacts like SPEC or ARCH into derived files such as diagrams or tables.

SKILL.md

ase-sync-export.SKILL.md
name: ase-sync-export
argument-hint: "[--help|-h] [--source|-s <source>[,...]] [<hint>]"
description: >
    Export artifact content into side-by-side, ready-to-consume files,
    one per artifact that declares an export. Use when the user wants to
    "export", "render", or "materialize" artifacts like SPEC or ARCH into
    derived files such as diagrams or tables.
user-invocable: true
disable-model-invocation: false
effort: xhigh
allowed-tools:
    - Write

@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md

<purpose name="ase-sync-export"> Export Artifact Set to Side-by-Side Files </purpose>

<expand name="getopt" arg1="ase-sync-export" arg2="--source|-s=SPEC,ARCH"> $ARGUMENTS </expand>

<objective> *Export* the *source* artifact kinds (optionally filtered by <hint/>) into side-by-side files, by reading the source artifacts and materializing, for every artifact that declares an export, the corresponding derived file next to the artifact itself. <hint><getopt-arguments/></hint>. </objective>

@${CLAUDE_SKILL_DIR}/../../meta/ase-format-meta.md @${CLAUDE_SKILL_DIR}/../../meta/ase-format-spec.md @${CLAUDE_SKILL_DIR}/../../meta/ase-format-arch.md

Procedure ---------

<flow>

1. <step id="STEP 1: Determine Source">

1. The recognized artifact kinds are the seven tokens `TASK`, `SPEC`, `ARCH`, `CODE`, `DOCS`, `INFR`, and `OTHR`. Parse <getopt-option-source/> as the comma-separated <source/> kind list. Upper-case and trim every parsed kind token. Do not output anything.

2. <if condition="<source/> is empty">

Only output the following <template/> and then immediately *STOP* processing the entire current skill:

<template> ⧉ **ASE**: ☻ skill: **ase-sync-export**, ▶ ERROR: empty source artifact list </template>

</if>

3. If any token in <source/> is *not* one of the seven recognized kinds, only output the following <template/> (with <kind/> set to the first offending token) and then immediately *STOP* processing the entire current skill:

<template> ⧉ **ASE**: ☻ skill: **ase-sync-export**, ▶ ERROR: unknown artifact kind: **<kind/>** </template>

4. Report the resolved source with the following <template/>:

<template> <ase-tpl-bullet-signal/> **SOURCE**: <source/> </template>

</step>

2. <step id="STEP 2: Resolve and Read Artifacts">

1. Do not output anything in this STEP 2.

2. For all kinds in <source/> except `TASK`, call the `ase_artifact_list(kind: [ ... ])` tool of the `ase` MCP server *once*, passing the lower-cased `kind` tokens, and read the returned `artifacts` array of `{ kind, files }` objects to obtain the project-relative file list per kind. The `TASK` kind is *not* resolvable via `ase_artifact_list` (task plans are managed by the `ase_task_*` tools) and declares no export, so *silently skip* it.

3. <if condition="<hint/> is not empty">

Honor the filtering <hint/> to reduce the source artifacts and/or the aspects of those artifacts you should take into account.

</if>

4. Internalize and honor the artifact-format conventions:

  • the artifact-set/artifact/aspect/export meta information (`ase-format-meta.md`),
  • the `SPEC` format (`ase-format-spec.md`),
  • the `ARCH` format (`ase-format-arch.md`).

In particular, internalize the generic *Artifact Export* contract of `ase-format-meta.md` (the `- Export:` bullet, the side-by-side file-name convention, and the rule that an artifact without an `- Export:` bullet is *not* exported), and which artifacts declare an export in the `SPEC` and `ARCH` formats.

5. Read all resolved source artifacts and build a precise understanding of the content of each artifact that declares an export.

</step>

3. <step id="STEP 3: Materialize Exports">

1. For *each* read source artifact that declares an `- Export:` bullet in its format definition, *materialize* the declared export:

  • *Build* the derived rendering exactly as described by the

artifact's <export-transform/>, faithfully reflecting the artifact's current content -- no more, no less. Honor **No Fabrication**: never invent content the artifact does not support.

  • For an export whose <export-transform/> is a *Mermaid

diagram converted to SVG*, build the Mermaid specification from the artifact content and render it to an SVG document by calling the `ase_diagram(diagram: "<mermaid-spec/>", format: "svg")` tool of the `ase` MCP server, using its `text` output field as the SVG document. For a textual export (e.g. a Markdown table), build the content directly. For Markdown *tables*, honor the table-alignment rule of `ase-skill.md`.

  • *Determine* the side-by-side target file name

<export-filename/> as `<artifact-set-id/>-<artifact-no/>-<artifact-id/>-<artifact-slug/>-<export-name/>.<export-ext/>` and resolve it to a project-relative path inside the artifact's own base directory (`<basedir/>`) by calling the `ase_artifact_name(filename: "<export-filename/>", kind: "<artifact-kind/>")` tool of the `ase` MCP server, with <artifact-kind/> the artifact's own lower-cased kind.

  • *Write* the derived rendering to that resolved path via the

`Write` tool, overwriting any pre-existing export file of the same name.

2. Report the materialized exports with the following <template/>, listing one bullet line per written fil

Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withase

Agentic Software Engineering (ASE)

Get the whole plugin, auto-invoked
Stats
44
Stars
0
Views
5
Forks
Active
Maintenance
TypeScript
Language
Apache-2.0
License
17h ago
Last commit
3mo ago
Created

Repo: rse/ase