Communitygithub.com

bbulman/findability

Use when people can't find something, when site search returns nothing or the wrong thing, when someone wants a search log analysed, best bets or synonyms set up, a no-results page designed or findability measured, or when a chatbot is proposed because "nobody can find anything". Not for redrawing the whole page tree, renaming a menu on its own, or running a tree test.

What is findability?

findability is a Claude Code agent skill that use when people can't find something, when site search returns nothing or the wrong thing, when someone wants a search log analysed, best bets or synonyms set up, a no-results page designed or findability measured, or when a chatbot is proposed because "nobody can find anything". Not for redrawing the whole page tree, renaming a menu on its own, or running a tree test.

Works with✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bbulman/information-architecture-skill/tree/HEAD/skills/findability

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

What does findability do?

"People can't find it" is a symptom with four usual causes, and each takes a different fix. This skill serves the decision of what to change first: it separates the cause from the complaint, picks the cheapest fix that addresses it, and sets a measure that shows whether it worked.

Before you start

You needIf it is missing
What people cannot find, who they are, and where they lookedAsk. If it stays vague, list the candidates and treat them as hypotheses.
The site, app or at least its navigationAsk. Without it you can only write the diagnosis plan.
A search log as CSV: query,count,results, and clicks if availableSay what to export and for what period. Deliver the diagnosis plan, the measures and the empty tables. Never estimate what the log would have said.
Analytics, support questions, an inventorySay which conclusions they would change and mark those as unconfirmed.

Method

  1. Write the failure as a task. "A [who] trying to [goal] looks in [where] for [thing], and [what happens]." One line per complaint, in their words.

  2. Read the log and use its numbers.

    node "${CLAUDE_SKILL_DIR}/scripts/search-log.mjs" searches.csv
    

    If it says the log is too small to rank, use it as a list of the words people typed and state no rates. Say what period the export covers; the script cannot know.

  3. Diagnose before prescribing. Work the causes in this order, because each rests on the one before. Several can apply at once. Mark each conclusion confirmed or inferred.

    CauseHow to confirm itUsual fixSkill
    Missing: it does not existLook under every name people use. Zero-result queries with no matching content anywhereCreate it, or say plainly it is not offeredcontent-inventory
    Badly labelled: it exists under another nameTheir word gets zero results or no clicks while the content sits under yours; pogo-stickingRename, add synonymslabeling
    Buried: well named, no route to itCount steps from home and hubs; look for orphans, dead ends, deep pagination as the only path, searches started on the section page that should have offered itLink it where people already look, or move itnavigation, sitemaps
    Search is failing: it exists, the query matches, the results are wrongRun the top queries yourself and read the results; results with no clicks, rewording, exits from the results pageBest bets, synonyms, index scope, rankingStep 5

    Many findability problems are cheaper to fix in labels and grouping than in the search engine, so do not start with the engine. Depth alone is not a fault: the three-click rule is a myth, and people click further when each step clearly smells like their goal.

  4. Decide which route should work. Support browse and search, because people switch between them. Top queries should be reachable in one or two steps from home.

    The personRoute to strengthen
    Knows the exact nameSearch, or an A to Z list
    Knows the need but not the nameBrowse with clear labels, then facets
    Is exploring or comparingBrowse, filters, related links
    Is coming back to somethingRecent items, saved views, shortcuts
    Is mid-taskA contextual link or cue in the place they are working
  5. Fix search where search is the cause. Put curated best bets at the top of results for the top queries. Build synonym sets from the script's variant groups, starting with those marked SYNONYM WOULD ANSWER, then add what only a person spots, such as acronyms and jargon. Never let a no-results page be a dead end. references/search-tuning.md covers all three, and what to export.

  6. Put cues where the decision happens. A good cue answers a question the person already has, at the moment they make the choice, in the place they are already looking, quietly and cheaply. The arrow beside a car's fuel gauge showing which side the cap is on is the model. Read references/routes-and-cues.md before adding a cue, or a personalised entry point.

  7. If someone proposes an AI chat as the fix, test it first. Buttons and menus let people act and show what the system can do. An open chat box does the first slowly and the second not at all.

    SituationBetter answer
    A limited, knowable set of optionsButtons, menus or filters
    People do not know what the system can doVisible structure; an empty box teaches nothing
    A repeated task with known stepsA direct path
    The content is missing or mislabelledFix that first; chat cannot retrieve what is not there
    Truly open-ended, phrased differently every timeChat can earn its place, with structure around it
  8. Set measures you can actually collect. Take a baseline before changing anything, one measure per problem. If there is no baseline, say so.

    MeasureComes fromTarget
    Time to find a simple itemA timed task test with peopleUnder 30 seconds
    Task successA task test or tree testAt least 70%, and 80% for top tasks
    Zero-result share of searchesSearch logBelow its own baseline
    Search exits, rewordingAnalytics, if the results page is trackedBelow its own baseline
    Support volume on this topicHelp desk, if taggedBelow its own baseline

    references/measures.md says what each can and cannot show.

Deliverable

Write findability-diagnosis.md unless the user names another file, in this order: Recommendation (two or three sentences); The failures, as tasks; Evidence (source, period, numbers from the script); Diagnosis (thing, cause, evidence, confirmed or inferred); Options (two or three, with what each costs and what it leaves unfixed); Fix list in order, with the skill that takes each; Best bets and synonyms (query, action, target); No-results page, if relevant; Measures (name, baseline, target, source, recheck date); Assumptions and what was not available.

JobHand back
One thing nobody can findFailure, cause, evidence, fix and one measure, in the reply
A search log to readEvidence, best bets and synonyms, and the zero-result gaps
"Findability is bad across the site"The full document

Put long tables last. A longer document is not a more thorough one.

Check it

  • Every number traces to a script run or a source the user gave you. Rerun the script if the log changed.
  • Every fix names the cause it addresses, and every cause has evidence or is marked inferred.
  • You ran the top queries by hand if you had access, because the log cannot say whether results were good.
  • You checked each proposed synonym means the same thing. The script groups by spelling, so it can pair words that differ in meaning.
  • Search logs can hold names and emails typed into the box. The script hides email addresses; do not copy other personal details into the report.

What Claude can't do here

You cannot watch real people search, time them, or know the organisation's strategy unless told. Never invent usage numbers, search volumes, success rates or quotes; a measure with no data is shown as not yet collected. Propose alternatives with their trade-offs, recommend one and say why; the human owns the decision. What a search product can do (synonyms, pinned results, query logging) varies, so say what you would expect and ask the user to confirm it.

Where this hands off

Next needSkill
Finding out what existscontent-inventory
The name is wronglabeling
Terms and filters need worktaxonomies
The groups do not match how people thinkcard-sort
The route to it is missingnavigation, sitemaps
Testing a changed hierarchytree-tests
Fields needed for facets or previewscontent-models
A page movesurl-structure, redirect-maps
A whole-site restructure, or unsure where to startinformation-architecture

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

bbulman/information-architecture

Use when someone wants to organize, restructure or review how a site, app, docs set, knowledge base or content library is grouped and found, and the job spans several pieces or it isn't yet clear which piece is needed, even if they never say "information architecture" or "IA". Not for a job that is clearly one piece, such as only a tree test or only a redirect map, and not for visual design.

bbulman/labeling

Use when someone needs to name or rename a section, menu item, tab, category, feature or link, when labels feel vague or read like internal jargon, or when they ask "what should we call this", "is this label clear", "nobody knows what Resources means" or "people don't understand this menu". Not for deciding the structure behind the labels, building a tag vocabulary, or writing body copy and microcopy.

bbulman/navigation

Use when someone wants a navigation or menu designed, audited or cut down, including a main menu, nav bar, sidebar, app switcher, mega-menu, footer, breadcrumbs, tab bar or mobile menu, or says "there are too many items in the menu", "rethink the sidebar", "our nav is a mess" or "where should settings go". Not for deciding which pages exist, for wording a single label, for fixing site search, or for running a tree test.

bbulman/sitemaps

Use when someone needs the structure of a website, app or docs set decided, asking for a sitemap, site tree, page hierarchy or list of sections, or saying "what pages do we need", "how should we organise the site", "where should this page live" or "the site is too deep". This is where the structure gets decided. Not for writing the linked sitemap file that later design stages read once the structure is settled (design-os:create-sitemap), for generating sitemap.xml, or for designing the menus.

Related Skills