skills/information-architecture/SKILL.md
Organizes, structures, and labels content so users can find and manage information effectively. Guides through content audits, card sorting, taxonomy design, navigation structure, and tree testing validation. Use when organizing content for digital products, designing navigation systems, restructuring information hierarchies, improving findability, creating taxonomies or metadata schemas, or when users mention information architecture, IA, sitemap, navigation design, content structure, card sorting, tree testing, taxonomy, or findability.
npx skillsauth add lyndonkl/claude information-architectureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When: Redesigning existing site/app with lots of content
Process:
Example: E-commerce site with 500 products. Audit products → Card sort with 15 users → Patterns show users group by "occasion" not "product type" → New navigation: "Daily Essentials", "Special Occasions", "Gifts" instead of "Electronics", "Clothing", "Home Goods"
When: Users need multiple ways to slice/filter information
Structure: Orthogonal facets (dimensions) that combine
Principle: Facets are independent. Users can filter by any combination.
Example: Amazon product browse. Filter by Category AND Brand AND Price simultaneously. Each facet narrows results without breaking others.
When: Content hierarchy is deep, users need overview before details
Structure:
Principle: Don't overwhelm with everything at once. Start simple, reveal complexity on-demand.
Example: Documentation site. Hub: "Getting Started" with 5 clear options (Install, Configure, First App, Tutorials, Troubleshooting). Each option links to detailed spoke. Users scan hub, pick entry point, dive deep, return to hub if stuck.
When: Deciding navigation depth (breadth vs. depth tradeoff)
Flat navigation (broad, shallow):
Deep navigation (narrow, tall):
Optimal: 3-4 levels deep, 5-9 items per level (Hick's Law: more choices = longer decision time)
Example: Software docs. Flat: All 50 API methods visible at once (overwhelming). Deep: APIs → Authentication → Methods → JWT → jwt.sign() (5 clicks, frustrating). Optimal: APIs (8 categories) → Authentication (6 methods) → jwt.sign() (3 clicks).
When: You don't know how users think about content
Process:
Example: SaaS product features. Company calls them "Widgets", "Modules", "Components" (technical terms). Card sort reveals users think "Reports", "Dashboards", "Alerts" (task-based terms). Insight: Label by user tasks, not internal architecture.
When: Validating navigation structure before building
Process:
Example: Navigation tree with "Services → Web Development → E-commerce". Task: "Find information about building an online store". 80% success = good. 40% success = users don't understand "E-commerce" label or "Services" category. Iterate.
Use this structured approach when designing or auditing information architecture:
□ Step 1: Understand context and users
□ Step 2: Audit existing content (if any)
□ Step 3: Conduct user research (card sorting, interviews)
□ Step 4: Design taxonomy and navigation
□ Step 5: Create sitemap and wireframes
□ Step 6: Validate with tree testing
□ Step 7: Implement and iterate
□ Step 8: Monitor findability metrics
Step 1: Understand context and users (details) Identify content volume, user goals, mental models, and success metrics (time to find, search queries, bounce rate).
Step 2: Audit existing content (details) Inventory all content (URLs, titles, metadata). Identify duplicates, gaps, outdated items. Measure current performance (analytics, heatmaps).
Step 3: Conduct user research (details) Run card sorting (open, closed, or hybrid) with 15-30 users. Analyze clustering patterns, category labels, outliers. Conduct user interviews to understand mental models.
Step 4: Design taxonomy and navigation (details) Create hierarchical structure (3-4 levels, 5-9 items per level). Design facets for filtering. Choose labeling system (task-based, audience-based, or alphabetical). Define metadata schema.
Step 5: Create sitemap and wireframes (details) Document structure visually (sitemap diagram). Create low-fidelity wireframes showing navigation, breadcrumbs, filters. Get stakeholder feedback.
Step 6: Validate with tree testing (details) Test navigation with text-based tree (no visuals). Measure success rate (≥70%), directness (≤1.5× optimal path), time. Identify problem areas, iterate.
Step 7: Implement and iterate (details) Build high-fidelity designs and implement. Launch incrementally (pilot → rollout). Gather feedback from real users.
Step 8: Monitor findability metrics (details) Track time to find, search success rate, navigation abandonment, bounce rate, user feedback. Refine taxonomy based on data.
Danger: Designing based on stakeholder opinions or personal preferences
Guardrail: Always validate with user research (card sorting, tree testing, usability testing). Minimum 15 participants for statistical significance.
Red flag: "I think users will understand 'Synergistic Solutions'..." — If you're guessing, you're wrong.
Danger: Structuring navigation by internal org structure (Sales, Marketing, Engineering)
Guardrail: Structure by user mental models and tasks, not company departments
Example: Bad: "About Us → Departments → Engineering → APIs". Good: "For Developers → APIs"
Danger: Deep hierarchies (5+ levels) where users get lost
Guardrail: Aim for 3-4 levels deep, 5-9 items per level. If deeper needed, add search, filtering, or multiple entry points.
Rule of thumb: If users need >4 clicks from homepage to content, rethink structure.
Danger: Vague labels ("Resources", "Solutions") or internal jargon ("SKU Management")
Guardrail: Labels must be specific, action-oriented, and match user vocabulary. Test labels in card sorts and tree tests.
Test: Could a new user predict what's under this label? If not, clarify.
Danger: Content lives in multiple places, or users can't predict location
Guardrail: Each content type should have ONE canonical location. If cross-category, use clear primary location + links from secondary.
Principle: "Principle of least astonishment" — content is where users expect it.
Danger: Structure works for 50 items but breaks at 500
Guardrail: Think ahead. If you have 50 products now but expect 500, design faceted navigation from start. Don't force retrofitting later.
Test: What happens if this category grows 10×? Will structure still work?
Danger: Only one way to find content (e.g., only browse, no search)
Guardrail: Offer browse (navigation), search, filters, related links, breadcrumbs, tags. Different users have different strategies.
Principle: Some users are "searchers" (know what they want), others are "browsers" (exploring). Support both.
Danger: Building full site/app before testing structure
Guardrail: Use tree testing (text-based navigation) to validate structure before expensive design/dev work
ROI: 1 day of tree testing saves weeks of rework after launch.
| Method | When to Use | Participants | Deliverable | |--------|-------------|--------------|-------------| | Open card sort | Exploratory, unknown categories | 15-30 users | Category labels, groupings | | Closed card sort | Validation of existing categories | 15-30 users | Fit quality, confusion points | | Tree testing | Validate navigation structure | 20-50 users | Success rate, directness, problem areas | | Content audit | Understand existing content | 1-2 analysts | Inventory spreadsheet, gaps, duplicates | | User interviews | Understand mental models | 5-10 users | Mental model diagrams, quotes |
| Content Size | Recommended Structure | Example | |--------------|----------------------|---------| | <50 items | Flat (1-2 levels) | Blog, small product catalog | | 50-500 items | Moderate (2-3 levels) | Documentation, medium e-commerce | | 500-5000 items | Deep with facets (3-4 levels + filters) | Large e-commerce, knowledge base | | 5000+ items | Hybrid (browse + search + facets) | Amazon, Wikipedia |
| System | When to Use | Example | |--------|-------------|---------| | Task-based | Users have clear goals | "Book a Flight", "Track Order", "Pay Invoice" | | Audience-based | Different user types | "For Students", "For Teachers", "For Parents" | | Topic-based | Reference/learning content | "History", "Science", "Mathematics" | | Format-based | Media libraries | "Videos", "PDFs", "Podcasts" | | Alphabetical | No clear grouping, lookup-heavy | "A-Z Directory", "Glossary" |
| Metric | Target | Measurement | |--------|--------|-------------| | Tree test success rate | ≥70% | Users find correct destination | | Directness | ≤1.5× optimal path | Clicks taken / optimal clicks | | Time to find | <30 sec (simple), <2 min (complex) | Task completion time | | Search success | ≥60% find without search | % completing task without search | | Bounce rate | <40% | % leaving immediately from landing page |
Context: Bookstore with 10,000 books organized by publisher (internal logic)
Approach: Content audit → Open card sort (20 users: genre-based, not publisher) → Faceted navigation: Genre × Format × Price × Rating → Tree test (75% success) → Result: Time to find -40%, conversion +15%
Context: Developer docs, high abandonment after 2 pages
Approach: User interviews (mental model = tasks not features) → Taxonomy shift: feature-based to task-based ("Get Started", "Store Data") → Progressive disclosure (hub-and-spoke) → Tree test (68% → 82% success) → Result: Engagement +50%, support tickets -25%
Context: Company wiki with 2,000 articles, employees can't find policies
Approach: Content audit (40% outdated, 15% duplicates) → Closed card sort (25 employees) → Hybrid: browse (known needs) + search (unknown) + metadata schema → Search best bets → Result: Search success 45% → 72%, time to find 5min → 1.5min
testing
Cluster a conference's event records into a small set of coarse themes with finer sub-clusters, an explicit outlier bucket, and soft (multi-membership) affinities — using the hybrid embed-then-label pipeline (embed abstracts, reduce, density-cluster, then LLM-label the clusters) when embedding libraries are available, and an LLM-reasoned hierarchical fallback when they are not. Embeddings do the grouping; the LLM only names the groups. Conference-agnostic. Use when turning structured event records into a navigable theme map for preference elicitation and scheduling, when you need 6-8 reasonable themes rather than 20 muddy ones, or when overlapping talks must belong to more than one theme. Trigger keywords - theme clustering, cluster talks, embed then label, soft membership, outlier talks, conference themes, topic map.
development
Build a personal conference schedule as a constraint-optimization problem — hard constraints (no time overlap, room-to-room travel time, capacity/registration, the attendee's own must-attends and blackouts) plus a user-owned weighted objective trading interest against breadth, pacing (maximize contiguous free time), and serendipity. Surfaces unbreakable conflicts (two high-value overlapping talks the model cannot rank) as decisions for the human rather than silently picking, and reports what each choice traded away. Conference-agnostic. Use to turn a preference profile plus a theme map into a day-by-day plan, to resolve overlapping sessions, or to balance a packed vs paced schedule. Trigger keywords - schedule optimization, conference schedule, constraint optimization, overlapping talks, contiguous free time, conflict surfacing, packed vs paced.
development
Parse a heterogeneous conference program (markdown, HTML, PDF-derived text, or JSON) into normalized event records with per-field confidence scores and independent classification axes (topic, depth, format, prerequisites, recorded, capacity). Detects the program's format before extracting, treats every inferred field as uncertain (present vs inferred vs missing), and flags thin or missing abstracts so downstream enrichment can target them. Conference-agnostic. Use when ingesting a conference or event schedule into a structured store, normalizing a talk/session list, or extracting per-session metadata with calibrated confidence. Trigger keywords - program ingestion, parse schedule, session extraction, event records, conference program, talk metadata, per-field confidence.
development
Build a personalized preference profile from a small number of well-chosen, cluster-grounded questions instead of a long survey. Represents the person's interests as an uncertainty region over the theme map, picks the single highest-information-gain choice-based question (contrasting real talks from different clusters), balances exploiting known interests against exploring uncertain ones, deliberately injects outlier probes to fight selection bias, and stops as soon as the schedule would be stable. Also elicits the user-owned objective weights and hard constraints. Interactive — runs where it can actually ask the person. Conference-agnostic. Use to turn a theme map into a preference profile, to decide what to ask a conference attendee, or to elicit scheduling priorities. Trigger keywords - preference elicitation, ask few questions, information gain, choice-based questions, selection bias probe, objective weights, attendee preferences.