information-architecture
Information Architecture
Plan the structure and the execution. Two artifacts: INFORMATION_ARCHITECTURE.md (the structural skeleton) and PLAN.md (the phased delivery plan with vertical-slice tasks, sub-tasks, dependencies, and estimates).
When to use
- The user wants to plan a product, feature, app, or site before building.
- The user wants to map navigation, content hierarchy, user flows, or URL strategy.
- The user wants a roadmap, an enhancement plan, or "what should I build first".
- A task chain ends in "and break it into phases / tasks I can pick up one at a time".
Output paths
By default, save both documents under <feature-slug>/ at the repo root:
<feature-slug>/
├── INFORMATION_ARCHITECTURE.md # structure: sitemap, nav, flows, conventions
└── PLAN.md # execution: phases → tasks → sub-tasks
If the repo already uses a convention (.design/<slug>/, .plan/<slug>/, docs/specs/<slug>/, etc.) use that instead — never invent a parallel one.
TASKS.md instead of PLAN.md (lightweight mode)
For a small, focused feature — single page, single dialog, focused refactor — produce a flat TASKS.md instead of a phased PLAN.md. Use assets/templates/TASKS.template.md. Same vertical-slice rules and reuse tags (Reuses / Modifies / New component); same five sections (Foundation · Core UI · Interactions & States · Responsive & Polish · Review); no phase numbering, no Detailed Task Breakdown. Promote to PLAN.md only when scope grows past ~10 tasks or estimates / dependency tracking become useful.
Workflow
- Locate or gather context. Look for an existing brief (
*BRIEF*.md,*SPEC*.md,READMEof the feature folder). If none, ask the user one short paragraph: what is being built, for whom, and what success looks like. Don't conduct a long interview at this step. - Discover the existing codebase. Spawn a background
Exploresubagent to learn what's already there — routing, navigation components, layout shells, existing pages, file-naming conventions, content models, dependencies. Do not propose an architecture that ignores what's already built. Loadreferences/discovery.mdfor the full checklist of what to look for. - Interview lightly, with recommendations. Ask 4–6 short questions about structure (primary user goals ranked by frequency, max nav depth, growing vs. fixed content, distinct user types, the "80% page", URL conventions). For each question, propose your recommended answer so the user can accept by default or push back. Don't ask without recommending.
- Produce
INFORMATION_ARCHITECTURE.md. Copyassets/templates/INFORMATION_ARCHITECTURE.template.mdand fill in: Site Map · Navigation Model (primary, secondary, utility, mobile) · Content Hierarchy (per major page) · User Flows · Naming Conventions · Component Reuse Map · Content Growth Plan · URL Strategy. Use the project's existing domain language consistently — pick one word per concept and use it everywhere. - Phase the work. Group tasks into phases by impact × effort × risk, not by area. The default phase set: Quick Wins → Core Feature Upgrades → Advanced Capabilities → Code Quality & Maintainability → Accessibility & Polish. For small features two or three phases is enough — don't pad. Load
references/phasing.mdfor the rationale and how to choose. - Slice tasks (and sub-tasks where needed). Each task is a vertical slice: structure + styling + interaction in one shippable piece, independently buildable, independently verifiable, completable in a single session. Add sub-tasks only when a task has clearly separable interior steps (an integration with three independent endpoints, for example). Mark dependencies honestly. Order within each phase by: dependencies first → highest visual priority → highest risk first. Load
references/task-slicing.mdfor the slicing rules. - Produce
PLAN.md. Copyassets/templates/PLAN.template.md. Fill in: Overview (one paragraph) · the phases with their### TODOchecklists · the Detailed Task Breakdown (one section per TODO with Why · How · Impact · Effort). - Print a top-5 summary. After writing both files, list the five most-impactful items in the plan and ask: "Want me to start on the first one, or revise the plan?"
Available resources
assets/templates/INFORMATION_ARCHITECTURE.template.md— IA doc skeleton.assets/templates/PLAN.template.md— phased plan skeleton (phases, TODOs, task breakdown).assets/templates/TASKS.template.md— flat lightweight alt for small features (no phase numbering, no Detailed Task Breakdown).assets/examples/team-knowledge-base/— fully-worked pair (medium feature → IA + PLAN).assets/examples/small-dialog/— fully-worked TASKS.md (small focused feature → flat list).references/discovery.md— load when starting step 2 (codebase exploration checklist + package-manager detection).references/phasing.md— load when designing step 5 (how to phase by impact × effort × risk; small / frontend / full feature shapes).references/task-slicing.md— load when slicing step 6 (vertical-slice rules, dependency ordering, package-manager-aware commands).
Top gotchas (always inline — do not skip)
- Don't propose an architecture that ignores existing code. Discovery comes before design. If the project already has a routing layout / nav component / content model, the IA extends it.
- Vertical slices, not layers. Never split a task into "build HTML", then "add CSS", then "wire JS". One task = one shippable piece of UI / behavior.
- Don't create "set up the project" tasks. That's not a vertical slice. Foundational components (a layout shell, a tokens file) are fine; "init the repo" is not.
- Flat task lists. No nesting deeper than one level of sub-tasks. Two levels of nesting is fine; three is unreadable.
- Phase by impact × effort × risk, not by area. "All the auth stuff in Phase 1" is wrong if half of it is high-risk and half is quick-win — split them across phases.
- One word per concept, used everywhere. "Project" and "Workspace" can't be the same thing in the IA — pick one. The Naming Conventions table is the contract.
- Recommend answers when interviewing. Don't ask "what depth of navigation do you want?" — ask "I'd recommend max two levels of nav depth — sound right?". The user's job is to accept or push back, not to design.
- Mark
Blocked byhonestly. If task B genuinely needs A done first, say so. If they're independent, say so. Inflated dependency chains kill parallelism. - Detailed Task Breakdown is mandatory. Every TODO gets a Why · How · Impact · Effort section. If you can't articulate Why and Impact, the task isn't ready to plan. (Only required in
PLAN.md;TASKS.mdskips it.) - Use the project's package manager in every command. Detect by lockfile (
uv.lock/poetry.lock/pdm.lock/Pipfile.lock/pnpm-lock.yaml/bun.lock/yarn.lock/package-lock.json/Cargo.lock/go.sum/Gemfile.lock/composer.lock). Never writepip install ...if the repo usesuvorpoetry; never writenpm install ...if it usespnpmorbun. Lockfile wins over manifest. Seereferences/discovery.md"Package manager detection" for the full table.
What you DO
- Look for existing brief/spec first; if none, take one paragraph from the user — no long interview.
- Run discovery against the codebase before designing the IA.
- Use the project's existing domain language consistently.
- Interview with recommended answers (4–6 short questions max).
- Save both documents under
<feature-slug>/at the repo root, or honor an existing.design/,.plan/, ordocs/specs/convention. - Phase by impact × effort × risk; small features get 2–3 phases, not 5.
- Slice tasks as vertical slices; mark dependencies; order by deps → visual priority → risk.
- Add sub-tasks only when a task has separable interior steps.
- Fill the Detailed Task Breakdown for every TODO (Why · How · Impact · Effort).
- Print a top-5 summary and offer to start on the first item.
What you do NOT do
- Propose a brand-new architecture when the codebase already has structure to extend.
- Split tasks by layer (HTML / CSS / JS).
- Create "scaffold the repo" / "set up tooling" tasks — they're not vertical slices.
- Nest task lists more than one level deep.
- Phase by area instead of by impact × effort × risk.
- Use multiple words for the same concept ("project" and "workspace" and "deck").
- Ask interview questions without giving a recommendation alongside.
- Inflate
Blocked bychains — independent tasks should be marked as such so they can be picked up in parallel. - Skip the Detailed Task Breakdown.
- Save plans into a parallel directory when an existing convention exists.
More from mkabumattar/skills
linux-script-developer
Write production-ready Bash scripts with strict error handling (`set -euo pipefail`), validated argument parsing, colored user feedback, and cross-platform compatibility (Linux, macOS, Windows via Git Bash/WSL). Use this skill whenever the user asks for a `.sh` script, a shell script, a Bash one-liner installer, a deployment script, an automation/CI script, a CLI wrapper, or a file-batch processor — including casual phrasings like "write a script to ...", "automate this in bash", or "make me a shell tool". Also use when reviewing or hardening an existing Bash script.
16skill-builder
Build a new Agent Skill that follows the agentskills.io specification and best practices — slim `SKILL.md` (≤ 200 lines / 5K tokens), valid kebab-case `name`, imperative `description` under 1024 chars, progressive disclosure via `references/`, bundled `assets/` and `scripts/`, and an MIT `LICENSE`. Use this skill whenever the user asks to create, scaffold, build, write, or author a new Agent Skill — including phrasings like "build a skill for X", "scaffold a new skill", "create an agent skill", "make me a skill that does X", "write a SKILL.md for ...", or "I want to publish a skill on agentskills.io". Also use when reviewing or refactoring an existing oversized `SKILL.md` (a sign that detail should be moved to `references/`).
15python-script-developer
Write production-ready Python CLI tools, automation scripts, and batch file processors with type hints, structured `logging` (never `print` for diagnostics), `argparse` interfaces, `pathlib` for filesystem work, specific exception handling, and cross-platform support (Linux, macOS, Windows). Use this skill whenever the user asks to create a Python script, `.py` utility, CLI tool, automation, batch processor, or data pipeline — including casual phrasings like "write a python script that ...", "automate this in python", "I need a small tool", or "give me a one-off processor". Also use when reviewing or hardening an existing Python script.
15makefile-script-developer
Write production-ready GNU Makefiles with strict shell mode (`SHELL := /bin/bash` + `.SHELLFLAGS := -euo pipefail -c`), validated multi-environment configuration via `$(filter ...)`, pre-flight check targets (`check-tools`, `check-env`), structured logging with timestamps, confirmation gates for destructive ops, layered `.env` includes, platform detection, and self-documenting help. Use this skill whenever the user asks to write a Makefile, harden an existing one, add a target, build a deploy/release pipeline, automate Terraform/Helm/Kubernetes/Docker/build workflows, or expose tasks as `make <target>` — including casual phrasings like "write a Makefile", "add a make target", "automate this in make", "give me a build pipeline", or "clean up the Makefile". Also use when reviewing an existing Makefile for safety, error handling, or organization issues.
15qa
Run an interactive QA session — the user describes bugs and issues conversationally, you ask brief clarifying questions, explore the codebase for domain context, decide whether to file one issue or break it down, and create durable user-focused GitHub issues via `gh issue create` — without referencing internal file paths or line numbers. Use this skill whenever the user wants to do QA, report bugs, file issues, walk through a list of problems, or hits you with phrases like "let's do a QA session", "I found a bug", "this is broken", "file this as an issue", "I have a few things to report", or "let's go through these one by one". Also use when the user is reviewing a deployed feature and wants to track defects.
14gitops-pipeline-developer
Author production-ready GitOps release pipelines (Jenkins-style by default; portable patterns for GitHub Actions, GitLab CI, Drone) that combine Gitflow branching, Conventional Commits, automatic SemVer bumping, a SonarQube quality gate, Grype container image scanning, and an aggregated quality+security scorecard with policy alignment checks. Use this skill whenever the user wants to write or harden a CI/CD pipeline, set up a release flow, automate versioning, enforce conventional commits, gate merges on SonarQube, scan images with Grype, build a release scorecard, or hits you with phrases like "set up the CI", "write me a Jenkinsfile", "add SonarQube", "enforce conventional commits", "wire SemVer", "scan our images for CVEs", "add a quality gate", "CI for this repo", or "I need a release pipeline".
14