[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PFTQB4P9SRW8H0XP64Y7PG":3,"skill-same:01M6PFTQB4P9SRW8H0XP64Y7PG":58},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":44,"install":45,"resources":57},"01M6PFTQB4P9SRW8H0XP64Y7PG","wayfinder",null,"Chart a route through a foggy problem — turn a loose idea into a map of investigation tickets and resolve them one at a time until the way to the goal is clear.","refo\u002Fclaude-dev-helpers","refo","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1114116?v=4","01M6PFRE5P2JXK3P8VYTERWA33","Refik ÖNAL","01M6PFRE9XZS4SGHG2NQGJ9AB3",2,"MIT","https:\u002F\u002Fgithub.com\u002Frefo\u002Fclaude-dev-helpers\u002Fblob\u002Fmain\u002Fplugins\u002Fmp\u002Fskills\u002Fskills\u002Fin-progress\u002Fwayfinder\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31],"investigation","one at a time","goal","idea","route","map","time","chart","clear","problem","tickets","true","at","2026-11-10 10:12:30",false,"---\nname: wayfinder\ndescription: Chart a route through a foggy problem — turn a loose idea into a map of investigation tickets and resolve them one at a time until the way to the goal is clear.\ndisable-model-invocation: true\n---\n\nA loose idea has arrived — too big for one agent session, and wrapped in fog: the route from here to a plan isn't visible yet. This skill charts it: stand up a map, then work its tickets one at a time until the way to the goal is clear. The map is domain-agnostic — engineering work, course content, whatever fits the shape.\n\n## The Map\n\nThe map is a single compact Markdown file, one per wayfinding effort, git-tracked alongside the project. It is the canonical artifact — the **whole map is loaded as context into every session**, so it must stay compact.\n\nAssets created during tickets should be linked to from the map, not duplicated within it.\n\n### Structure\n\nEntries (\"tickets\"), each its own section keyed by a short dash-case slug that\nreads as a mini-title (e.g. `relational-db`, `auth-strategy`, `cache-layer`) —\nterse enough to stay token-efficient, and unique within the map.\n\n```markdown\n## relational-db: Relational Or Non-Relational Database?\n\nBlocked by: \u003Cslug>, \u003Cslug>\nStatus: open | in-progress | resolved\nType: Research | Prototype | Grilling | Task\n\n### Question\n\n\u003Cquestion-here>\n\n### Answer\n\n\u003Canswer-here>\n```\n\nThe slug is the canonical id, used in every `Blocked by` edge and prose\nreference; the title after the colon is optional. A ticket\nis **unblocked** when every ticket in its `Blocked by` list is `resolved`. A\nsession **claims** its ticket by setting `Status: in-progress` and saving the map\nbefore any work, so concurrent sessions skip it.\n\nEach ticket must be sized to one 100K token agent session.\n\n## Ticket Types\n\nThere are four types of tickets:\n\n- **Research**: Reading documentation, third-party API's, or local resources like knowledge bases. Creates a markdown summary as an asset. Use this when knowledge outside the current working directory is required.\n- **Prototype**: Raise the fidelity of the discussion by making a cheap, rough, concrete artifact to react to — an outline, a rough take, a stub, or UI\u002Flogic code via the \u002Fprototype skill. Creates the prototype as an asset. Use this when \"how should it look\" or \"how should it behave\" is the key question.\n- **Grilling**: Conversation with the agent. Uses the \u002Fgrilling and \u002Fdomain-modeling skills. Asks one question at a time. The default case.\n- **Task**: Literal manual work that must be done before the discussion can move forward — nothing to decide, prototype, or research. Moving data from one place to another, signing up for a third-party service, provisioning access. The agent automates it where it can; otherwise it hands the human a precise checklist to do by hand. Resolved when the work is done; the answer records what was done and any resulting facts (credentials location, new URLs, row counts) later tickets depend on.\n\n## Fog of war\n\nThe map is _deliberately_ incomplete beyond the frontier — don't chart what you can't yet see. The frontier is the unblocked tickets at the edge of the known; resolve them to push it forward. Push back the fog of war one ticket at a time, until the way to the goal is clear and no tickets remain.\n\n## Invocation\n\nTwo branches. Either way, **every session ends with a [Handoff](#handoff)** — never resolve more than one ticket per session.\n\n### Chart the map\n\nUser invokes with a loose idea.\n\n1. Run a `\u002Fgrilling` and `\u002Fdomain-modeling` session to surface the open decisions.\n2. Write a new map — mostly fog, frontier identified, trivially-decidable entries resolved inline.\n3. Handoff. Charting the map is one session's work; do not also resolve tickets.\n\n### Work through the map\n\nUser invokes with a path to an existing map. A ticket slug is **optional** — without one, you pick the next decision, not the user.\n\n1. Load the **whole map** as context.\n2. Choose the ticket. If the user named one, use it. Otherwise pick the first `open` ticket in document order that is [unblocked](#structure). [Claim it](#structure): set `Status: in-progress` and save before any work.\n3. Resolve it, invoking skills as needed — including any the `## Notes` block names. If in doubt, use `\u002Fgrilling` and `\u002Fdomain-modeling`.\n4. Record the answer in the ticket's body and set `Status: resolved`.\n5. Add newly-discovered tickets with correct `Blocked by` edges. If the decisions made invalidate other parts of the map, update or delete those tickets.\n6. Handoff.\n\nThe user may run unblocked tickets in parallel, so expect other agents to be editing the map in their own sessions.\n\n## Handoff\n\nEnd every session by clearing the context and opening one or more fresh sessions. Close with a **Next steps** block the user can copy-paste. Two cases:\n\n**Open tickets remain.** List the currently-unblocked tickets, then give two copy-paste options: a bare command for one session (you pick the next ticket), and one pinned command per unblocked ticket for running them in parallel. Paste one line per fresh window — opening one, some, or all of them.\n\n> **Next steps** — 3 tickets unblocked: `auth-strategy`, `cache-layer`, `rate-limits`.\n> Clear the context, then open fresh sessions.\n>\n> **One session** — resolves the next unblocked ticket:\n> ```\n> Invoke \u002Fwayfinder with the map at \u003Cpath>.\n> ```\n>\n> **Parallel** — paste one line per window, up to all 3:\n> ```\n> Invoke \u002Fwayfinder with the map at \u003Cpath>, ticket auth-strategy.\n> Invoke \u002Fwayfinder with the map at \u003Cpath>, ticket cache-layer.\n> Invoke \u002Fwayfinder with the map at \u003Cpath>, ticket rate-limits.\n> ```\n\n**No open tickets remain.** The fog is pushed back far enough that the way to the goal is clear — the map is done. (The initial grilling may also surface no fog at all, in which case there was never a map to chart.) Recommend implementing directly, or using `\u002Fto-prd` to schedule a multi-session implementation.\n\n## Notes\n\nAn optional block declaring the **domain**, any skills every session should `consult`, and freeform standing preferences for this effort.\n","A loose idea has arrived — too big for one agent session, and wrapped in fog: the route from here to a plan isn't visible yet. This skill charts it: stand up a map, then work its tickets one at a time until the way to the goal is clear. The map is domain-agnostic — engineering work, course content, whatever fits the shape.\n\n## The Map\n\nThe map is a single compact Markdown file, one per wayfinding effort, git-tracked alongside the project. It is the canonical artifact — the **whole map is loaded as context into every session**, so it must stay compact.\n\nAssets created during tickets should be linked to from the map, not duplicated within it.\n\n### Structure\n\nEntries (\"tickets\"), each its own section keyed by a short dash-case slug that\nreads as a mini-title (e.g. `relational-db`, `auth-strategy`, `cache-layer`) —\nterse enough to stay token-efficient, and unique within the map.\n\n```markdown\n## relational-db: Relational Or Non-Relational Database?\n\nBlocked by: \u003Cslug>, \u003Cslug>\nStatus: open | in-progress | resolved\nType: Research | Prototype | Grilling | Task\n\n### Question\n\n\u003Cquestion-here>\n\n### Answer\n\n\u003Canswer-here>\n```\n\nThe slug is the canonical id, used in every `Blocked by` edge and prose\nreference; the title after the colon is optional. A ticket\nis **unblocked** when every ticket in its `Blocked by` list is `resolved`. A\nsession **claims** its ticket by setting `Status: in-progress` and saving the map\nbefore any work, so concurrent sessions skip it.\n\nEach ticket must be sized to one 100K token agent session.\n\n## Ticket Types\n\nThere are four types of tickets:\n\n- **Research**: Reading documentation, third-party API's, or local resources like knowledge bases. Creates a markdown summary as an asset. Use this when knowledge outside the current working directory is required.\n- **Prototype**: Raise the fidelity of the discussion by making a cheap, rough, concrete artifact to react to — an outline, a rough take, a stub, or UI\u002Flogic code via the \u002Fprototype skill. Creates the prototype as an asset. Use this when \"how should it look\" or \"how should it behave\" is the key question.\n- **Grilling**: Conversation with the agent. Uses the \u002Fgrilling and \u002Fdomain-modeling skills. Asks one question at a time. The default case.\n- **Task**: Literal manual work that must be done before the discussion can move forward — nothing to decide, prototype, or research. Moving data from one place to another, signing up for a third-party service, provisioning access. The agent automates it where it can; otherwise it hands the human a precise checklist to do by hand. Resolved when the work is done; the answer records what was done and any resulting facts (credentials location, new URLs, row counts) later tickets depend on.\n\n## Fog of war\n\nThe map is _deliberately_ incomplete beyond the frontier — don't chart what you can't yet see. The frontier is the unblocked tickets at the edge of the known; resolve them to push it forward. Push back the fog of war one ticket at a time, until the way to the goal is clear and no tickets remain.\n\n## Invocation\n\nTwo branches. Either way, **every session ends with a [Handoff](#handoff)** — never resolve more than one ticket per session.\n\n### Chart the map\n\nUser invokes with a loose idea.\n\n1. Run a `\u002Fgrilling` and `\u002Fdomain-modeling` session to surface the open decisions.\n2. Write a new map — mostly fog, frontier identified, trivially-decidable entries resolved inline.\n3. Handoff. Charting the map is one session's work; do not also resolve tickets.\n\n### Work through the map\n\nUser invokes with a path to an existing map. A ticket slug is **optional** — without one, you pick the next decision, not the user.\n\n1. Load the **whole map** as context.\n2. Choose the ticket. If the user named one, use it. Otherwise pick the first `open` ticket in document order that is [unblocked](#structure). [Claim it](#structure): set `Status: in-progress` and save before any work.\n3. Resolve it, invoking skills as needed — including any the `## Notes` block names. If in doubt, use `\u002Fgrilling` and `\u002Fdomain-modeling`.\n4. Record the answer in the ticket's body and set `Status: resolved`.\n5. Add newly-discovered tickets with correct `Blocked by` edges. If the decisions made invalidate other parts of the map, update or delete those tickets.\n6. Handoff.\n\nThe user may run unblocked tickets in parallel, so expect other agents to be editing the map in their own sessions.\n\n## Handoff\n\nEnd every session by clearing the context and opening one or more fresh sessions. Close with a **Next steps** block the user can copy-paste. Two cases:\n\n**Open tickets remain.** List the currently-unblocked tickets, then give two copy-paste options: a bare command for one session (you pick the next ticket), and one pinned command per unblocked ticket for running them in parallel. Paste one line per fresh window — opening one, some, or all of them.\n\n> **Next steps** — 3 tickets unblocked: `auth-strategy`, `cache-layer`, `rate-limits`.\n> Clear the context, then open fresh sessions.\n>\n> **One session** — resolves the next unblocked ticket:\n> ```\n> Invoke \u002Fwayfinder with the map at \u003Cpath>.\n> ```\n>\n> **Parallel** — paste one line per window, up to all 3:\n> ```\n> Invoke \u002Fwayfinder with the map at \u003Cpath>, ticket auth-strategy.\n> Invoke \u002Fwayfinder with the map at \u003Cpath>, ticket cache-layer.\n> Invoke \u002Fwayfinder with the map at \u003Cpath>, ticket rate-limits.\n> ```\n\n**No open tickets remain.** The fog is pushed back far enough that the way to the goal is clear — the map is done. (The initial grilling may also surface no fog at all, in which case there was never a map to chart.) Recommend implementing directly, or using `\u002Fto-prd` to schedule a multi-session implementation.\n\n## Notes\n\nAn optional block declaring the **domain**, any skills every session should `consult`, and freeform standing preferences for this effort.\n",{"name":5,"description":7,"disable-model-invocation":37},true,"main","488e6998e820e577029147aceabcbc69961c43df","plugins\u002Fmp\u002Fskills\u002Fskills\u002Fin-progress\u002Fwayfinder",0,"https:\u002F\u002Fgithub.com\u002Frefo\u002Fclaude-dev-helpers","https:\u002F\u002Fgithub.com\u002Frefo","2026-07-02 04:43:45",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":37},[47,50,53],{"tool":48,"command":49},"npx","npx skills add refo\u002Fclaude-dev-helpers --skill wayfinder",{"tool":51,"command":52},"bunx","bunx skills add refo\u002Fclaude-dev-helpers --skill wayfinder",{"tool":54,"command":55},"pnpm","pnpm dlx skills add refo\u002Fclaude-dev-helpers --skill wayfinder","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frefo\u002Fclaude-dev-helpers\u002Fblob\u002Fmain\u002Fplugins\u002Fmp\u002Fskills\u002Fskills\u002Fin-progress\u002Fwayfinder\u002FSKILL.md",[],[59,84,101,115,132,142],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":75,"publishedAt":32},"01M6PFW0KDMWH5HGR1GA8K39ZN","writing-great-skills","Reference for writing and editing skills well — the vocabulary and principles that make a skill predictable.","https:\u002F\u002Fgithub.com\u002Frefo\u002Fclaude-dev-helpers\u002Fblob\u002Fmain\u002Fplugins\u002Fmp\u002Fskills\u002Fskills\u002Fproductivity\u002Fwriting-great-skills\u002FSKILL.md",[65,70],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":71,"categoryName":72,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[76,77,78,79,80,81,82,30,83],"writing great skills","writing","editing","reference","vocabulary","make","principles","for",{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":93,"publishedAt":32},"01M6PFVXQ3PVRQ9035VZE9RBBX","teach","Teach the user a new skill or concept, within this workspace.","https:\u002F\u002Fgithub.com\u002Frefo\u002Fclaude-dev-helpers\u002Fblob\u002Fmain\u002Fplugins\u002Fmp\u002Fskills\u002Fskills\u002Fproductivity\u002Fteach\u002FSKILL.md",[90],{"categoryNo":91,"categoryName":92,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000039","教师与教育",[86,94,95,96,97,98,99,30,100],"new skill","learn","workspace","user","about","you","concept",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":32},"01M6PFVVJB7E7297GXB809B4J4","handoff","Compact the current conversation into a handoff document for another agent to pick up.","https:\u002F\u002Fgithub.com\u002Frefo\u002Fclaude-dev-helpers\u002Fblob\u002Fmain\u002Fplugins\u002Fmp\u002Fskills\u002Fskills\u002Fproductivity\u002Fhandoff\u002FSKILL.md",[],[103,108,109,110,111,30,83,112,113,114],"document","conversation","compact","next","up","session","pick",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":32},"01M6PFVS5DF6SM2251R15HR9A9","grilling","Interview the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.","https:\u002F\u002Fgithub.com\u002Frefo\u002Fclaude-dev-helpers\u002Fblob\u002Fmain\u002Fplugins\u002Fmp\u002Fskills\u002Fskills\u002Fproductivity\u002Fgrilling\u002FSKILL.md",[],[117,122,123,124,125,126,97,127,128,129,130,131,98],"trigger","design","test","plan","before building","interview","use","grill","stress-test","stress",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":32},"01M6PFVQE56YMR6MXKTYWA2467","grill-me","A relentless interview to sharpen a plan or design.","https:\u002F\u002Fgithub.com\u002Frefo\u002Fclaude-dev-helpers\u002Fblob\u002Fmain\u002Fplugins\u002Fmp\u002Fskills\u002Fskills\u002Fproductivity\u002Fgrill-me\u002FSKILL.md",[],[139,129,140,127,123,125,141,30],"me","grill me","sharpen",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":32},"01M6PFVMPQ6PWHRFRW5YYZ4VZF","obsidian-vault","Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.","https:\u002F\u002Fgithub.com\u002Frefo\u002Fclaude-dev-helpers\u002Fblob\u002Fmain\u002Fplugins\u002Fmp\u002Fskills\u002Fskills\u002Fpersonal\u002Fobsidian-vault\u002FSKILL.md",[],[149,150,151,152,153,154,155,156,97,128,157,158,159],"obsidian vault","vault","obsidian","notes","create","index","search","find","manage","organize","with"]