/ase-sync-import
Import information from foreign sources into a set of artifact kinds (the target), generating or updating them to reflect the imported information. Use when the user wants to "import", "ingest", or "bring in" external sources like files, URLs, or pasted text into artifacts like
$ npx -y skills add rse/ase --skill ase-sync-import --agent claude-codeHow 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-import
Context preview
The summary Claude sees to decide when to auto-load this skill.
Import information from foreign sources into a set of artifact kinds (the target), generating or updating them to reflect the imported information. Use when the user wants to "import", "ingest", or "bring in" external sources like files, URLs, or pasted text into artifacts like
SKILL.md
ase-sync-import.SKILL.mdname: ase-sync-import
argument-hint: "[--help|-h] [--target|-t <target>[,...]] <hint>"
description: >
Import information from foreign sources into a set of artifact kinds
(the target), generating or updating them to reflect the imported
information. Use when the user wants to "import", "ingest", or
"bring in" external sources like files, URLs, or pasted text into
artifacts like SPEC, ARCH, CODE, DOCS, TASK, INFR, or OTHR.
user-invocable: true
disable-model-invocation: false
effort: xhigh@${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-import"> Import Foreign Sources into Artifact Set </purpose>
<expand name="getopt" arg1="ase-sync-import" arg2="--target|-t=SPEC,ARCH"> $ARGUMENTS </expand>
<objective> *Import* the information of the *foreign sources* (named by the <hint/>) into the *target* artifact kinds, by reading the foreign sources and generating or updating the target artifacts to faithfully reflect the imported information: <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>
1. <step id="STEP 1: Determine Target">
1. The recognized artifact kinds are the seven tokens `TASK`, `SPEC`, `ARCH`, `CODE`, `DOCS`, `INFR`, and `OTHR`. Parse <getopt-option-target/> as the comma-separated <target/> kind list. Upper-case and trim every parsed kind token. Do not output anything.
2. <if condition="<target/> is empty">
Only output the following <template/> and then immediately *STOP* processing the entire current skill:
<template> ⧉ **ASE**: ☻ skill: **ase-sync-import**, ▶ ERROR: empty target artifact list </template>
</if>
3. If any token in <target/> 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-import**, ▶ ERROR: unknown or unsupported artifact kind: **<kind/>** </template>
4. <if condition="<hint/> is empty">
Only output the following <template/> and then immediately *STOP* processing the entire current skill:
<template> ⧉ **ASE**: ☻ skill: **ase-sync-import**, ▶ ERROR: empty source hint -- nothing to import from </template>
</if>
5. Report the resolved target and source hint with the following <template/>:
<template> <ase-tpl-bullet-signal/> **TARGET**: <target/> <ase-tpl-bullet-normal/> **SOURCE**: <hint/> </template>
</step>
2. <step id="STEP 2: Ingest Foreign Sources">
1. Do not output anything in this STEP 2.
2. Interpret the <hint/> as the description of the *foreign sources* to import from. The foreign sources are *external* to the ASE artifact sets and may be local files or directories, remote URLs, pasted text passages, or references to other documents.
3. Read or fetch all foreign sources named by the <hint/>: read local files and directories via the `Read` tool, and fetch remote URLs via the available web tools. Build a precise understanding of the *information* the foreign sources represent.
</step>
3. <step id="STEP 3: Generate or Update Artifacts">
1. For all kinds in <target/> 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), so resolve and read it via the `ase_task_id` and `ase_task_load` tools instead. Read all *existing* target artifacts to understand their current state.
2. Internalize and honor the artifact-format conventions:
- the artifact-set/artifact/aspect meta information (`ase-format-meta.md`),
- the `SPEC` format (`ase-format-spec.md`),
- the `ARCH` format (`ase-format-arch.md`),
- the `TASK` format (`ase-format-task.md`).
Whenever a target artifact belongs to one of these kinds, it *MUST* be kept (or made) conformant to the corresponding format (headings, structure, identifiers, and the `<timestamp-modified/>` rule). The kinds `CODE`, `DOCS`, `INFR`, and `OTHR` have no dedicated format contract and are treated as free-form.
3. You *MUST* internalize and strictly honor the **GENERIC TENETS**, the **CRAFTING TENETS**, and the **RECONCILIATION TENETS** of the **ASE Tenets** when generating or updating in the following. Do not output anything.
4. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase` MCP server *once* to find out the current time and store it in <timestamp-modified/>.
5. *Generate or update* the <target/> artifact files so that they faithfully *reflect* the information of the imported foreign sources:
- *Generate* a target artifact that does not yet exist but is
warranted by the imported information, using the current time for both its `Created:` and `Modified:` timestamps.
- *Update* an existing target artifact so it reflects the
imported information. Keep changes as *surgical* as possible: cha
Read more
name: ase-sync-import
argument-hint: "[--help|-h] [--target|-t <target>[,...]] <hint>"
description: >
Import information from foreign sources into a set of artifact kinds
(the target), generating or updating them to reflect the imported
information. Use when the user wants to "import", "ingest", or
"bring in" external sources like files, URLs, or pasted text into
artifacts like SPEC, ARCH, CODE, DOCS, TASK, INFR, or OTHR.
user-invocable: true
disable-model-invocation: false
effort: xhigh@${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-import"> Import Foreign Sources into Artifact Set </purpose>
<expand name="getopt" arg1="ase-sync-import" arg2="--target|-t=SPEC,ARCH"> $ARGUMENTS </expand>
<objective> *Import* the information of the *foreign sources* (named by the <hint/>) into the *target* artifact kinds, by reading the foreign sources and generating or updating the target artifacts to faithfully reflect the imported information: <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>
1. <step id="STEP 1: Determine Target">
1. The recognized artifact kinds are the seven tokens `TASK`, `SPEC`, `ARCH`, `CODE`, `DOCS`, `INFR`, and `OTHR`. Parse <getopt-option-target/> as the comma-separated <target/> kind list. Upper-case and trim every parsed kind token. Do not output anything.
2. <if condition="<target/> is empty">
Only output the following <template/> and then immediately *STOP* processing the entire current skill:
<template> ⧉ **ASE**: ☻ skill: **ase-sync-import**, ▶ ERROR: empty target artifact list </template>
</if>
3. If any token in <target/> 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-import**, ▶ ERROR: unknown or unsupported artifact kind: **<kind/>** </template>
4. <if condition="<hint/> is empty">
Only output the following <template/> and then immediately *STOP* processing the entire current skill:
<template> ⧉ **ASE**: ☻ skill: **ase-sync-import**, ▶ ERROR: empty source hint -- nothing to import from </template>
</if>
5. Report the resolved target and source hint with the following <template/>:
<template> <ase-tpl-bullet-signal/> **TARGET**: <target/> <ase-tpl-bullet-normal/> **SOURCE**: <hint/> </template>
</step>
2. <step id="STEP 2: Ingest Foreign Sources">
1. Do not output anything in this STEP 2.
2. Interpret the <hint/> as the description of the *foreign sources* to import from. The foreign sources are *external* to the ASE artifact sets and may be local files or directories, remote URLs, pasted text passages, or references to other documents.
3. Read or fetch all foreign sources named by the <hint/>: read local files and directories via the `Read` tool, and fetch remote URLs via the available web tools. Build a precise understanding of the *information* the foreign sources represent.
</step>
3. <step id="STEP 3: Generate or Update Artifacts">
1. For all kinds in <target/> 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), so resolve and read it via the `ase_task_id` and `ase_task_load` tools instead. Read all *existing* target artifacts to understand their current state.
2. Internalize and honor the artifact-format conventions:
- the artifact-set/artifact/aspect meta information (`ase-format-meta.md`),
- the `SPEC` format (`ase-format-spec.md`),
- the `ARCH` format (`ase-format-arch.md`),
- the `TASK` format (`ase-format-task.md`).
Whenever a target artifact belongs to one of these kinds, it *MUST* be kept (or made) conformant to the corresponding format (headings, structure, identifiers, and the `<timestamp-modified/>` rule). The kinds `CODE`, `DOCS`, `INFR`, and `OTHR` have no dedicated format contract and are treated as free-form.
3. You *MUST* internalize and strictly honor the **GENERIC TENETS**, the **CRAFTING TENETS**, and the **RECONCILIATION TENETS** of the **ASE Tenets** when generating or updating in the following. Do not output anything.
4. Call the `ase_timestamp(format: "yyyy-LL-dd HH:mm")` tool of the `ase` MCP server *once* to find out the current time and store it in <timestamp-modified/>.
5. *Generate or update* the <target/> artifact files so that they faithfully *reflect* the information of the imported foreign sources:
- *Generate* a target artifact that does not yet exist but is
warranted by the imported information, using the current time for both its `Created:` and `Modified:` timestamps.
- *Update* an existing target artifact so it reflects the
imported information. Keep changes as *surgical* as possible: cha
Showing the first part of this file.
Repo: rse/ase
Other skills on ase.
- /hello
Show a nice greeting message with a timestamp. Use this, when the user wants to greet or say hello, optionally to a certain subject <subject> and in a certain language <language>.
Open skill - /ase-arch-analyze
Review software architecture, including package cohesion and inter-package coupling
Open skill - /ase-arch-discover
Discover additional, third-party components (libraries/frameworks) for the technology stack to provide needed functionality.
Open skill - /ase-code-analyze
Analyze the source code for problems in either the logic and semantics and its related control flow, performance and efficiency, or security.
Open skill - /ase-code-craft
Craft Source Code: Use when user wants to "create", "add", or "craft" a new feature from scratch.
Open skill - /ase-code-dissect
Dissect the current Git change set, treated as an epic, domain-wise and logically into cohesive parts and materialize each part in its own dedicated Git WorkTree. Use when the user calls to "dissect", "split", "break up", or "decompose" a large change set into atomic, separately
Open skill

