AID Pipeline Configuration

VerifiedCaution

View or update AID pipeline settings. Table view for all values and interactive update for a single key.

Sby Skills Guide Bot
DevelopmentBeginner
7/26/2026
Claude Code
#configuration#yaml#project-settings#interactive-cli#pipeline

Recommended for

Automated summary

Manages the AID pipeline's `.aid/settings.yml`: it either renders every setting as a table or interactively updates a single key.

Strengths

  • Auto-creates `.aid/settings.yml` from the template on first run
  • The overview mode lists all six keys in a fixed order and flags placeholder values with ⚠ unset
  • Emits copy-pasteable `/aid-config <key>` commands for each unset value
  • Per-key mode validates input before writing, offering suggestions plus a free-form 'Other' field

Limitations

  • Supports only six fixed keys; any other key argument is rejected
  • Writes files, so it refuses to run in Plan mode
  • Relies on internal paths (`canonical/aid/templates/settings.yml`, `canonical/aid/scripts/config/read-setting.sh`) being present
When to use it

Use it to quickly inspect or change project identity, source control, or grading thresholds for an AID pipeline without hand-editing the YAML.

When not to use it

Avoid it in Plan mode, or when you need to change keys outside the fixed list or parts of the file other than the managed settings.

Security analysis

Caution
Quality score85/100

The skill is a narrow configuration editor: it reads/writes a single flat YAML file inside the project's .aid directory, uses Bash only to run a local read-setting script and an atomic rename, and asks the user for confirmation via AskUserQuestion. There is no obfuscation, no network access, no credential handling, no destructive commands, and no attempt to disable safety controls. The only real exposure is executing a repo-supplied shell helper and mutating project files, which is powerful but legitimate for this purpose — hence caution rather than safe.

Findings
  • •Invokes an external helper script (canonical/aid/scripts/config/read-setting.sh) via Bash whose contents are not auditable from SKILL.md alone
  • •Writes and rewrites files in the user's project (.aid/settings.yml) including creating directories on first run
  • •Uses temp-file + `mv -f` in-place replacement, which can clobber concurrent manual edits (mutex explicitly skipped)
How this analysis is made

Examples

View all settings
/aid-config
Update project name
/aid-config name
Change minimum grade
/aid-config minimum_grade

name: aid-config description: > View or update AID pipeline settings. Bare invocation shows all values in a table; first run auto-creates .aid/settings.yml from the template. Pass a key (e.g., /aid-config name) to view + update one setting interactively. allowed-tools: Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion argument-hint: "(none) view all | <key> view+update one (e.g., name, minimum_grade)"

AID Project Configuration

/aid-config reads and writes .aid/settings.yml — the single source of truth for AID pipeline settings (grades, heartbeat, project identity).

Two modes, nothing else.

| Invocation | What it does | |---|---| | /aid-config | Show all settings as a table. On first run (no settings.yml), copy the template into place first, then show. | | /aid-config <key> | Show the current value of <key>; prompt for new (with suggestions + always a free-form option); validate; write in place. |

Examples: /aid-config name, /aid-config minimum_grade, /aid-config source_control.


Pre-flight

  • ✅ Default or Auto-accept edits → proceed
  • ❌ Plan mode → STOP. This skill writes files.

Mode 1 — Show all settings (/aid-config)

Step 1: Ensure .aid/settings.yml exists

If .aid/settings.yml is missing:

  • Create .aid/ directory if absent (do NOT touch .aid/knowledge/ or other subdirs).
  • Copy canonical/aid/templates/settings.yml → .aid/settings.yml verbatim.
  • Print: Created .aid/settings.yml from template.

Step 2: Render the table

Read .aid/settings.yml. Print a table with these columns: Key | Value

Order: name, description, type, source_control, minimum_grade, heartbeat_interval.

If any value matches a <placeholder> pattern (e.g., <project-name>), append ⚠ unset after the value.

Step 3: Suggest commands for unset values + the general update form

After the table, ALWAYS print the line:

Run /aid-config <key> to update any value.

If ANY rows were marked ⚠ unset, ALSO emit a copy-pasteable command per unset row, so the user can act without having to assemble the key themselves:

N values unset. To set them:
  /aid-config name
  /aid-config description

Exit. No prompt; no further interaction.


Mode 2 — View/update one key (/aid-config <key>)

Step 1: Validate the key argument

Accepted keys:

  • name
  • description
  • type
  • source_control
  • minimum_grade
  • heartbeat_interval

If the key doesn't match: print ❌ Unknown key: <key> + the accepted list + exit.

Step 2: Ensure .aid/settings.yml exists

Same as Mode 1 Step 1.

Step 3: Read current value

Run:

bash canonical/aid/scripts/config/read-setting.sh --path <key> --default '(unset)'

Print: Current value of <key>: <value>.

Step 4: Prompt for new value

Use AskUserQuestion for ALL keys with:

  • A Keep current value option (description: shows the current value)
  • 2–3 suggestion options from the Suggestions table below

Each option has only label + description. Do NOT use the preview field — the preview field switches the UI to a side-by-side layout that suppresses the auto-injected Other free-text input. With description only, the standard layout shows the Other field automatically and the user can always type a custom value.

Do NOT add an explicit Other option in the options list — the tool injects it automatically (and only renders it correctly when no option carries a preview).

For free-text-natural keys (name, description), the Suggestions table says (no defaults) — render the question with just Keep current value + the auto-injected Other field; the user types their value into Other.

Question text format (keep brief, mention free-text via Other if the user might want it):

New value for <key>?  (pick a suggestion or type your own via 'Other')

Step 5: Validate

Per the Validation table below. If invalid: print the validation error + re-prompt (loop back to Step 4).

Step 6: Save in place

Read .aid/settings.yml into memory. settings.yml is a flat file — every user-editable key is a top-level scalar (<key>: <value>), no section nesting. Replace the top-level line for <key> if one is present; otherwise append a new top-level <key>: <value> line at the end of the file. Preserve all other lines and inline comments exactly as they are. Use a same-directory temp file + mv -f for crash-safety (POSIX atomic rename), but no lock-dir mutex — aid-config is interactive single-user; concurrent writes are not a real failure mode.

Step 7: Confirm

Print: ✓ <key>: <old> → <new> and exit.


Validation table

| Key | Valid values | |---|---| | name | Non-empty string, no whitespace | | description | Non-empty single-line string (NO newlines — settings.yml uses inline YAML scalars) | | type | brownfield or greenfield | | source_control | none, git, svn, or mercurial | | minimum_grade | Regex ^[A-F][+-]?$. E-grades are accepted but rarely useful as a floor. | | heartbeat_interval | Positive integer (minutes). 0 disables heartbeat. |


Internal keys (producer-written — NOT user-configurable)

/aid-config deliberately does not expose these — they are absent from Accepted keys (Mode 2 Step 1) and from the Validation table above. They are written and maintained by pipeline producers, never by the user. Running /aid-config knowledge (or any knowledge.* sub-path) is rejected as an unknown key (❌ Unknown key) — that is the intended behavior, not a gap.

| Key | Owner / contract | |---|---| | knowledge | Nested block {source: <default-branch>, last_update: <ISO-8601 commit date>, doc_set: [...], term_exclusions: [...]}. knowledge.source (the branch compared for KB freshness) and knowledge.last_update are written by aid-discover (on KB approval, FR35) and aid-housekeep (re-stamp on KB-DELTA refresh, FR36); read by the dashboard reader for outdated-detection (feature-007 FF-A2). knowledge.doc_set and knowledge.term_exclusions are runtime-written by aid-discover. Absence-tolerant — a missing knowledge block means "no baseline recorded" and the reader stays approved. Producer write-path (R13): the first write is a multi-line nested block (source: + last_update: + doc_set: + term_exclusions:) via the append-block idiom; a later last_update re-stamp is a single-line replace of that nested line. |


Suggestions table (for Mode 2 AskUserQuestion)

| Key | Suggestions | |---|---| | name | (no defaults — user types their own) | | description | (no defaults — user types their own) | | type | brownfield, greenfield | | source_control | none, git, svn, mercurial | | minimum_grade | A+, A, B+ | | heartbeat_interval | 0 (disabled), 1, 5 |

Always include a Keep current value option and let AskUserQuestion's built-in Other field handle free-form input.


How consumer skills read settings

Consumer skills (/aid-discover, /aid-execute, etc.) resolve minimum_grade using this order:

  1. minimum_grade in .aid/settings.yml — use if present
  2. Hardcoded skill default — use only if .aid/settings.yml is missing entirely, or the key is unset

The canonical resolution helper is canonical/aid/scripts/config/read-setting.sh. Consumer skills invoke:

bash canonical/aid/scripts/config/read-setting.sh --key minimum_grade --default A

Schema reference

Canonical schema: canonical/aid/templates/settings.yml. Flat top-level scalar keys (name, description, type, source_control, minimum_grade, heartbeat_interval) as described in the tables above. The knowledge: block is producer-written — see Internal keys above, not user-configurable via this skill.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/aid-pipeline-configuration-ms1aw4lt/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/aid-pipeline-configuration-ms1aw4lt' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/aid-pipeline-configuration-ms1aw4lt/download' --output '.skill-downloads/aid-pipeline-configuration-ms1aw4lt/SKILL.md.part' && mv '.skill-downloads/aid-pipeline-configuration-ms1aw4lt/SKILL.md.part' '.skill-downloads/aid-pipeline-configuration-ms1aw4lt/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Tools declared by the author (check availability in your agent): Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/aid-pipeline-configuration-ms1aw4lt/SKILL.md' && test -s '.skill-downloads/aid-pipeline-configuration-ms1aw4lt/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/aid-config' && cp -R '.skill-downloads/aid-pipeline-configuration-ms1aw4lt' '.claude/skills/aid-config'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/aid-pipeline-configuration-ms1aw4lt'

openskills read 'aid-pipeline-configuration-ms1aw4lt'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/aid-pipeline-configuration-ms1aw4lt/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills