Skip to content

/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
4448 skills
shell
$ 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.
  • You can call itInvoke it directly when you want it.
  • Slash command/ase-sync-import
How auto-invocation works

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, 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
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
18h ago
Last commit
3mo ago
Created

Repo: rse/ase