Skip to content
Development
Skill

/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

From plugin
ase
5355 skills10 agents
Install
$ npx -y skills add rse/ase --skill ase-sync-import --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.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • 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.md
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, 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"> $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-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 six tokens `TASK`, `SPEC`, `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 six 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 meta information (`ase-format-meta.md`),
  • the `SPEC` format, i.e. the SpecBook models and formats plus

the SpecBook schema configuration of the project (`ase-format-spec.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, references, and the `Modified:` timestamp 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: change only w

Read more
Ships withase

Agentic Software Engineering (ASE)

Get the whole plugin

Other skills on ase.

hello
Skill

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…

@rse@rseView Skill