Ase sync reconcile
Reconcile one set of artifact kinds (the target) to reflect the current state of another set of artifact kinds (the source), while optionally honoring a filtering hint. Use when the user wants to "reconcile", "sync", "align", or "update" artifacts like SPEC, ARCH, CODE, DOCS, TASK, INFR, or OTHR against each other.From its SKILL.md
npx -y skills add rse/ase --skill ase-sync-reconcileAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
7.2 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
@${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-reconcile"> Reconcile Artifact Set to Artifact Set </purpose><expand name="getopt" arg1="ase-sync-reconcile" arg2="--bidirectional|-b --target|-t=CODE,DOCS,INFR,OTHR --source|-s=AUTO"> $ARGUMENTS </expand>
<objective> *Reconcile* the *target* artifact kinds to *reflect* the *current state* of the *source* artifact kinds, by reading the source artifacts and aligning the target artifacts accordingly: <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 @${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md @${CLAUDE_SKILL_DIR}/../../meta/ase-tenets.md
Procedure
<flow>-
<step id="STEP 1: Determine Target and Source">
-
The recognized artifact kinds are the seven tokens
TASK,SPEC,ARCH,CODE,DOCS,INFR, andOTHR. Parse <getopt-option-target/> as the comma-separated <target/> kind list and <getopt-option-source/> as the comma-separated <source/> kind list. Upper-case and trim every parsed kind token. Do not output anything. -
<if condition="<target/> is empty">
Only output the following <template/> and then immediately STOP processing the entire current skill:
<template> ⧉ **ASE**: ☻ skill: **ase-sync-reconcile**, ▶ ERROR: empty target artifact list </template> </if> -
<if condition="<source/> is equal 'AUTO'">
Set <source/> to the seven recognized kinds
</if>TASK,SPEC,ARCH,CODE,DOCS,INFR,OTHRminus all kinds present in <target/>. Do not output anything. -
If any token in <target/> or <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-reconcile**, ▶ ERROR: unknown or unsupported artifact kind: **<kind/>** </template> -
<if condition="<getopt-option-bidirectional/> is not 'true'">
Remove from <source/> any kind that is also present in <target/> (a kind is never its own source).
<if condition="<source/> is empty">Only output the following <template/> and then immediately STOP processing the entire current skill:
<template> ⧉ **ASE**: ☻ skill: **ase-sync-reconcile**, ▶ ERROR: empty source -- nothing to update from </template> </if> </if> -
Report the resolved target and source with the following <template/>:
<template> <ase-tpl-bullet-signal/> **TARGET**: <target/> <ase-tpl-bullet-normal/> **SOURCE**: <source/> </template>
-
-
<step id="STEP 2: Resolve and Read Artifacts">
-
Do not output anything in this STEP 2.
-
For all kinds in the union of <target/> and <source/>, call the
ase_artifact_list(kind: [ ... ])tool of theaseMCP server once, passing the lower-casedkindtokens, and read the returnedartifactsarray of{ kind, files }objects to obtain the project-relative file list per kind. -
<if condition="<hint/> is not empty">
Honor the filtering <hint/> to reduce the source and/or target artifacts and/or the aspects of those artifacts you should take into account.
</if> -
Read all (optionally filtered) source and target artifacts previously resolved and build a precise understanding of the current state they represent.
-
-
<step id="STEP 3: Update Artifacts">
-
Internalize and honor the artifact-format conventions:
- the artifact-set/artifact/aspect meta information (
ase-format-meta.md), - the
SPECformat (ase-format-spec.md), - the
ARCHformat (ase-format-arch.md), - the
TASKformat (ase-format-task.md).
Whenever a target artifact belongs to one of these kinds, the update MUST keep it conformant to the corresponding format (headings, structure, identifiers, and the
<timestamp-modified/>rule). The kindsCODE,DOCS,INFR, andOTHRhave no dedicated format contract and are treated as free-form. - the artifact-set/artifact/aspect meta information (
-
You MUST internalize and strictly honor the GENERIC TENETS, the RECONCILIATION TENETS, the REFACTORING TENETS, and the CRAFTING TENETS of the ASE Tenets when updating in the following. Do not output anything.
-
Once call the
ase_timestamp(format: "yyyy-LL-dd HH:mm")tool of theaseMCP server to find out the current time and store it in <timestamp-modified/>. -
<if condition="<getopt-option-bidirectional/> is equal 'true'">
Bidirectionally update the <target/> and <source/> artifacts so that they faithfully reflect the current state of each other.
</if> <else>Unidirectionally update the <target/> artifact files so that they faithfully reflect the current state of the <source/> artifacts.
</else>Keep changes as surgical as possible: change only what the input state actually requires, and do not rewrite unrelated parts of an output artifact.
Apply the update directly to the output artifacts via the
Write/Edittools.For each formatted output artifact kind, strictly honor its format contract.
Whenever an output artifact is changed and contains a
Modified: <timestamp-modified-old/>line, replace this withModified: <timestamp-modified/>. -
Report the performed updates with the following <template/>, listing one bullet line per changed output file (with <file/> its project-relative path and <note/> an ultra-brief description of what was reconciled):
<template> <ase-tpl-bullet-signal/> **UPDATED ARTIFACTS**:<file/>: <note/> [...] </template>
Only output the following <template/>:
<template> <ase-tpl-bullet-normal/> **UPDATED ARTIFACTS**: none -- all outputs already reflected source state </template> </if>
-
What ships with it: 1 file
2.9 KB alongside SKILL.md
- help.md2.9 KB