From aria-knowledge
Transforms raw task text into a tiered executable spec (micro/standard/full) following TASK.schema.md. Supports --group to load CODEMAPs for multi-repo project context. Useful for turning ambiguous or conversational requests into structured, actionable plans.
How this skill is triggered — by the user, by Claude, or both
Slash command
/aria-knowledge:distill <text or file path> [--group=tag] [--tier=micro|standard|full] [--append|--out=path|--no-archive]<text or file path> [--group=tag] [--tier=micro|standard|full] [--append|--out=path|--no-archive]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn raw task text into a tiered executable spec following `TASK.schema.md`. Auto-tiers by complexity or accepts explicit `--tier`. Optional `--group` loads CODEMAPs for cited-path context.
Turn raw task text into a tiered executable spec following TASK.schema.md. Auto-tiers by complexity or accepts explicit --tier. Optional --group loads CODEMAPs for cited-path context.
--group=<tag> — load CODEMAPs + STITCH for cited-path context (see shared-block below).Read ~/.claude/aria-knowledge.local.md. Parse YAML frontmatter projects_groups (multi-line YAML block — see CONFIG.md "Skill-only fields" for canonical schema, including the optional stitch_path sub-field and custom-role conventions).
Look up <tag> in projects_list (get project_root) and projects_groups (get role → folder dict).
<tag> missing from projects_list: stop with "unknown project tag: ".<tag> in projects_list but missing from projects_groups and <project_root> has multiple sub-dirs with repo markers: trigger auto-propose bootstrap.<tag> is a single-repo project (no multi-repo sub-dirs detected): load <project_root>/CODEMAP.md only.Auto-propose bootstrap (when projects_groups[<tag>] is missing but <project_root> contains multiple repo-marker sub-directories):
<project_root> one level deep for sub-directories with repo markers:
manage.py + settings.py → backend (Django)composer.json + artisan → backend (Laravel)Gemfile with rails → backend (Rails)package.json with express/fastify/nestjs → backend (Node)next.config.* → web (Next.js)app.json + expo in package.json → mobile (Expo)package.json with react (no next/expo) → web (React SPA)package.json → prompt user for role nameweb, web-admin, etc.).~/.claude/aria-knowledge.local.md.projects_groups[<tag>] entry, preserving existing fields and YAML structure.Resolve each (role, folder) pair to absolute path: <project_root>/<folder>. For each absolute path, read CODEMAP.md if it exists. Read <project_root>/STITCH.md if it exists. Return resolved path map + warnings for any missing CODEMAPs.
--tier=micro|standard|full — explicit tier overrides auto-scoring. Else compute score:| Signal | Points |
|---|---|
| >1 layer (FE+BE, BE+DB, …) | +2 |
| New endpoint / route / model / migration | +2 |
| External service (Stripe, Twilio, S3, SendGrid, Algolia, OpenAI, Vercel, …) | +2 |
| Auth / permissions / security | +2 |
| Input >150 words or multi-paragraph | +1 |
| Names >3 files | +1 |
| Single-sentence trivial edit | −3 |
Score ≤ 0 → micro; 1–3 → standard; ≥ 4 → full.
Follow ${CLAUDE_PLUGIN_ROOT}/template/distill/TASK.schema.md section tags [R] [L] [O] [F].
[R]): 1 Objective, 2 Scope, 5 Dependencies & API Requirements, 10 QA, 11 DoD.[L]): include Frontend / Backend / Database only if the task actually touches that layer. Never emit empty headings.full adds 3 Non-Goals ([F]).standard and full add 4 Assumptions ([O], include when non-empty) and 9 Edge Cases ([O], include when non-empty).micro skips Non-Goals; Assumptions only if a blocking ambiguity exists.One implementation path per layer section. No option menus inside a layer. Matches the discipline of Rule 22's Execute step: commit to one plan.
[R] sections present for the chosen tier.[L] sections (omit entirely if layer not touched).--group, every cited file path must appear in the loaded CODEMAP or STITCH content. If Claude invents a path, either remove the citation or promote the uncertainty to Assumptions as a blocking item.TASK.schema.md (flexible, extensible, scalable framework, we could also, alternatively, one option, potentially, might want to). Prefer concrete alternatives. Not a hard rejection — surface as a soft warning in skill output, continue otherwise.On validation failure: self-correct once, then move remaining gaps to Assumptions as blocking items.
Default output path: TASK.md in CWD.
Overwrite safety:
TASK.md exists and is non-empty, first-run behavior: emit a one-time notice explaining the auto-archive default. Subsequent runs are silent.TASK.md to .aria-distill/archive/TASK-YYYY-MM-DD-HHMMSS.md, then write fresh output to TASK.md..aria-distill/archive/) created lazily on first archive. First-run notice suggests adding .aria-distill/ to .gitignore.Flags override defaults:
--append — add new entry below existing TASK.md content, separated by --- and a ## Distilled YYYY-MM-DD HH:MM header. No archive.--out=<path> — write to the specified path. Existing TASK.md untouched; no archive.--no-archive — overwrite existing TASK.md without archiving. Destructive opt-in; display a warning before proceeding.Writing steps:
.aria-distill/archive/ exists (create if not), move existing file in with timestamped name.No backlog or side files beyond the archive.
npx claudepluginhub mikeprasad/aria-knowledge --plugin aria-knowledgeCreates task specifications via codebase analysis, interactive clarifying questions on scope/constraints/edge cases, feature splitting checks, and agent delegation setup.
Creates structured implementation task breakdowns from proposal, design, and specification artifacts, outputting self-contained per-task files for subagents.
Decomposes specs into one-file-per-task under tasks/ with dependency graphs and parallel lane suggestions. Activates when specs/ has unmapped specs or user mentions task decomposition.