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
Use it to quickly inspect or change project identity, source control, or grading thresholds for an AID pipeline without hand-editing the YAML.
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
CautionThe 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.
- •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)
Examples
/aid-config/aid-config name/aid-config minimum_gradename: 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
- ✅
DefaultorAuto-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.ymlverbatim. - 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:
namedescriptiontypesource_controlminimum_gradeheartbeat_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 valueoption (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:
minimum_gradein.aid/settings.yml— use if present- Hardcoded skill default — use only if
.aid/settings.ymlis 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 filesThis 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.mdFrom 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 installationopenskills 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 syncManual 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.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.