Wardley Mapping
tractorjuice/arc-kit
Wardley Mapping reference for a map, a positioning question or a strategic read: value-chain decomposition, evolution stages, OnlineWardleyMaps syntax, gameplay, doctrine and climatic patterns…
Draft, review, and improve Roam positioning and product copy across its website, README, offers, setup explanations, package descriptions, and metadata.
$ npx skills add Cranot/roam-code --skill roam-product-writing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Cranot/roam-code roam-product-writing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Cranot/roam-code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/roam-product-writing .claude/skills/roam-product-writing && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "roam-product-writing" agent skill from https://github.com/Cranot/roam-code/tree/main/.agents/skills/roam-product-writing into .claude/skills/roam-product-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "roam-product-writing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Cranot/roam-code/tree/main/.agents/skills/roam-product-writingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Cranot/roam-code --skill roam-product-writing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Cranot/roam-code roam-product-writing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cranot/roam-code.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/roam-product-writing .agents/skills/roam-product-writing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "roam-product-writing" agent skill from https://github.com/Cranot/roam-code/tree/main/.agents/skills/roam-product-writing into .agents/skills/roam-product-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "roam-product-writing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Cranot/roam-code --skill roam-product-writing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Cranot/roam-code roam-product-writing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cranot/roam-code.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/roam-product-writing .cursor/skills/roam-product-writing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "roam-product-writing" agent skill from https://github.com/Cranot/roam-code/tree/main/.agents/skills/roam-product-writing into .cursor/skills/roam-product-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "roam-product-writing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Cranot/roam-code.git --path .agents/skills/roam-product-writing--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Cranot/roam-code --skill roam-product-writing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Cranot/roam-code roam-product-writing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cranot/roam-code.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/roam-product-writing .gemini/skills/roam-product-writing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "roam-product-writing" agent skill from https://github.com/Cranot/roam-code/tree/main/.agents/skills/roam-product-writing into .gemini/skills/roam-product-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "roam-product-writing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Cranot/roam-code roam-product-writingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Cranot/roam-code --skill roam-product-writing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Cranot/roam-code.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/roam-product-writing .github/skills/roam-product-writing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "roam-product-writing" agent skill from https://github.com/Cranot/roam-code/tree/main/.agents/skills/roam-product-writing into .github/skills/roam-product-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "roam-product-writing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Cranot/roam-code --skill roam-product-writing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Cranot/roam-code roam-product-writing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cranot/roam-code.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/roam-product-writing .opencode/skills/roam-product-writing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "roam-product-writing" agent skill from https://github.com/Cranot/roam-code/tree/main/.agents/skills/roam-product-writing into .opencode/skills/roam-product-writing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "roam-product-writing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
roam-product-writingDraft, review, and improve Roam positioning and product copy across its website, README, offers, setup explanations, package descriptions, and metadata.
Roam Product Writing is an agent skill from Cranot/roam-code. Draft, review, and improve Roam positioning and product copy across its website, README, offers, setup explanations, package descriptions, and metadata. Make its agent-first mechanical capabilities clear, useful, and persuasive without narrowing the product or overstating evidence. Not for unrelated products or CLI output schemas.
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `agents/openai.yaml`, `references/meaning-review.md` and `references/source-map.md`).
It sits in Development, covering Copywriting and Positioning and messaging. It works with Model Context Protocol. The repository describes itself as: Local codebase intelligence CLI + MCP server for AI coding agents: SQLite code graph, 28 languages, 287 commands, 246 MCP tools, change-safety gates, audit evidence, zero API keys. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit f0bdb63. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Roam Product Writing loads about 3.4k tokens when it runs, and up to ~6k if it reads all its reference files. Until then it costs about 88 tokens; SKILL.md has 1,941 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Cranot/roam-code at commit f0bdb63, republished under its Apache-2.0 licence (© Cranot). 1,941 words, ~3,370 tokens.
.claude/skills/roam-product-writing/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Explain why Roam belongs in a coding agent's tools, not just what features it contains. An accurate sentence can still present the wrong product. Earn a strong claim with concrete work and a supported mechanism, not adjectives.
Choose by the passage's job, not its file extension. Product explanation belongs here; technical instructions for an acting agent need instruction/contract review, and a new comparative benefit claim needs qualified measurement. A mixed page can need both kinds of work without turning its explanation into an operating manual.
Read the source map and the sources relevant to the surface. Resolve the Roam checkout from context; a supplied frozen source packet can replace repository reads in isolated trials. Treat current copy as editing input, not its own factual proof. Cite source locations in separate working notes.
Latest explicit owner direction sets positioning; verified implementation bounds capability; adopted records govern commercial terms. Older headlines are not templates to restore. Distinguish working-tree, published, planned, and measured behavior. Name a contradiction or unavailable fact; do not silently select the convenient source. Keep private strategy and customer information out of public copy. Package descriptions and registry cards are public copy too; a bounded website claim does not repair an absolute claim in metadata.
Match evidence to the claim: implementation supports capability, the license supports licensing, owner decisions govern offers, and measurements support outcome comparisons. Missing one source is a specific gap, not grounds to reject every supported part of a sentence.
Use the orientation's The product model behind the words as the maintained meaning, not a stock tagline. Roam gives coding agents callable local analysis and mechanical checks for investigating code, evaluating implementation choices, and checking changes. Context, findings, algorithmic alternatives and scoped verification evidence are useful outputs, not competing definitions of the product. Some evidence comes from fixed experiments or replay, not just the code graph. Do not reduce Roam to code understanding, a bug finder, or a post-edit reviewer. The public atlas is an illustration for visitors, not the agent's working interface.
People choose tools and set direction; agents consume results. Generated code can outpace line-by-line attention. Roam's value is making useful repository questions mechanically answerable and repeatable, not declaring human reading obsolete or the model incapable. Do not advertise a self-improving system or perfect understanding. The agent reasons about applicability and directs work; Roam returns observations and performs supported requested operations. Candidate improvements are not implemented solutions or demonstrated speedups.
For substantive positioning work, first record a short private meaning brief: the reader and their task, what Roam supplies, what the agent does with it, why the mechanism is worth adding, and which evidence bounds the claim. This is reasoning input, not a template to paste into every surface. Reading the docs is not proof of understanding: check a mechanism beyond the opening example and ask what remains useful when no defect is found. Resolve conflicting current guidance rather than allowing the next page to inherit the same contradiction.
Identify the reader's question and the section's job before drafting. For an opening, make the purpose recognizable and show why the supplied context/checks matter to real work. For a capability card, connect a named output to its use. For a FAQ, answer the practical objection and provide the next step.
In an opening, answer the reason to add Roam to an agent the reader already uses. A category plus a feature list is not that answer. Explain useful work and the mechanism that supplies it: query code relationships, inspect a pattern and a candidate alternative, or obtain a recorded check result. Ready-to-query analysis and executable checks let an agent consult results instead of deriving each relationship or building each check anew. This is a mechanism, not a measured saving or a claim that the existing agent cannot investigate code. Choose a hook suited to the reader; neither a fixed verb trio nor one concrete example should become the entire product identity.
Test the opening by paraphrasing only its visible words: what Roam supplies, how it obtains that result, and what the existing agent can do with it. A list of agent jobs (understand, find problems, improve, check) does not explain the added tool. If the same opening could describe the coding agent itself, name Roam's contribution instead of adding another benefit verb. This is a test of the explanation, not a requirement for a unique competitive feature or a fixed slogan. The headline sets the category or useful task; the lede must supply the reason to add Roam without relying on a diagram or lower section.
Explain labels such as "context" through a useful output and next action. Check a healthy-code case: what useful answer remains when no problem is found? Reuse means an index or checked observation can serve later questions under refresh conditions, not measured savings or automatic freshness. Put refresh instructions in the workflow unless the opening implies reuse across changed source; qualify that stronger claim immediately. Do not spend every opening on setup.
Prefer files, functions, connections, duplicate code, tests, and checks to an unexplained catalogue of technical categories. Keep necessary technical meaning. When shortening, preserve a named output and how Roam obtains it. "Engineering checks" or "candidate algorithms" alone can still hide the work: indexed callers, a detected source pattern paired with a catalogued alternative, or a replay result are more concrete when supported by the relevant source. Describe the producer accurately rather than implying model-generated proposals. For an adoption introduction, make the local, model-free nature of static checks legible; "mechanical" is not a substitute for explaining it. Keep connected-model usage separate. These are meaning checks, not required phrases in every section. Use confident verbs for supported behavior and conditional wording for uncertain inferences. Do not hedge every sentence. Stronger copy adds a specific result, use, or mechanism; it does not need a larger promise. "Local graph + judgment + evidence" may name internal concepts but does not explain a benefit to a visitor. "Deterministic facts, not guesses" confuses repeatable analysis with certainty.
Read entry copy aloud as if explaining Roam to a developer over a desk. Replace internal labels with the work they describe: a reader should not need to decode “clone evidence” to learn that similar code may need attention. Let the headline establish a recognizable category or invite a concrete task, and let the lede explain the mechanism; neither has to carry the whole product manual. Keep precise terms in technical references where the audience needs them. Use a nearby, clearly labelled example to show a useful question and returned result; a list of check categories cannot do that job. Name what a broad phrase such as “structural concerns” means in that example. Preserve the stronger baseline passage when a warmer rewrite obscures the agent's next action.
Keep the actor clear in every instruction: is a person connecting the tools, the agent consulting them, or Roam returning a result? Do not turn the agent-first story into a list of manual chores. Give adjacent sections different explanatory jobs; consistency is shared meaning, not repeating the same words everywhere. An algorithm page can focus on candidate alternatives; a README introduction needs the wider purpose; a paid offer sells its actual deliverable, not free tooling relabelled as a subscription. Lead with useful work, attach the relevant limit, and preserve agreed commercial terms. A focused page need not repeat the whole capability range to be consistent.
A short section need not repeat the whole list. A qualification belongs beside the claim it changes; working notes and distant FAQs cannot repair false public copy. Keep limitations usable, not a wall of warnings.
Read the copy without notes: does the reader get the intended product, a concrete reason to use it, and a relevant action? Check benefit-with-mechanism, actor, section progression, and factual clauses separately. Preserve good original text when rewriting adds no value. Never treat exact phrase matching as writing quality.
For an important positioning revision, unless the owner requests self-evaluation, obtain a cold reading of the draft without product docs or the author's rationale before a source-informed review. Use the meaning review for substantive positioning changes and skill trials. Ask what reason to adopt it is actually stated, not whether the words sound good. Inspect the opening in isolation as well as the full page: a correct lower section cannot silently repair the wrong category. An unexplained reason remains missing even if a knowledgeable reviewer can fill it in. Keep that diagnostic separate from human research and owner taste. When an independent reader is unavailable, save the author review and name that limit; do not relabel it cold, block unrelated useful work, or infer approval.
For test-first requests, save private drafts and follow the requested decision route: owner acceptance when reserved, or documented author evaluation when the owner explicitly delegates application. Do not turn the latter into another approval loop or call it independent validation. Evaluation against a capable docs-only baseline may produce ties or losses; retain them. A rewritten authority and a rewritten skill are different interventions: compare them separately when attributing improvements. An unresolved owner objection keeps the affected positioning unresolved even if factual checks pass. Model judgment is not human comprehension or conversion evidence. Create another skill only for a demonstrated distinct job.
If application is authorized, align the relevant page, metadata, and semantic siblings without rewriting historical quotations. Run proportionate source/site checks and keep local, verified, reviewed, and live states separate. A writing skill neither grants deployment authority nor proves marketing effectiveness. Keep the selected draft identifiable and compare it with the actual served opening after applying it. Updating a skill or saving a private draft does not correct a page that still presents rejected copy. Report the visible headline and application/publication state, not just that the writing work is complete.
For a substantial reorganization, test the reader's path as well as individual sentences; use the reading-path check in the meaning review. Shorter is not better if prerequisites, qualifications or useful destinations disappear.
For a cross-surface pass, record each page's job and whether to revise or retain it. Read each changed page in full, including captions and secondary sections; a strong hero cannot repair a contradictory lower paragraph. Keep meaning consistent without pasting one slogan everywhere. Synchronize visible FAQs and their structured data, page titles/descriptions, and agent-readable summaries. Verify cross-page promises against the destination: a working link does not prove that a named guide exists there or that a command does what its label says. Preserve executable examples, generated sections, anchors, and commercial terms; change their owners or generators when necessary, not just rendered copies.
© Cranot, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in .agents/skills/roam-product-writing of Cranot/roam-code.
Open the folder on GitHubat commit f0bdb63
Roam Product Writing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Roam Product Writing this skillCranot/roam-code | 517 | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Wardley Mappingtractorjuice/arc-kit | 2.3k | — | ~5.1k | Automated safety check: Pass | Custom licence | |
| Competitor Monitorhanzili/hanzi-browse | 177 | — | ~2.8k | Automated safety check: Pass | Custom licence | |
| Writeohad6k/emulo | 294 | 1 repos | ~488 | Automated safety check: Pass | MIT | |
| Igce Builder Craiskillstore/marketplace | 433 | — | ~4.2k | Automated safety check: Pass | None | |
| Igce Builder Lh Tmaiskillstore/marketplace | 433 | — | ~4k | Automated safety check: Pass | None |
tractorjuice/arc-kit
Wardley Mapping reference for a map, a positioning question or a strategic read: value-chain decomposition, evolution stages, OnlineWardleyMaps syntax, gameplay, doctrine and climatic patterns…
hanzili/hanzi-browse
Monitor competitor websites for changes. An agent skill from hanzili/hanzi-browse.
ohad6k/emulo
A skill your agent uses for marketing, social, replies, product copy, launch copy, and writing in the user's voice when their Emulo writing profile should guide the task.
aiskillstore/marketplace
Trigger for: cost-reimbursement IGCE, CR cost estimate, CPFF, CPAF, CPIF, cost-plus estimate, BAA estimate, fixed-fee analysis, award-fee analysis, incentive-fee analysis, proposed CR rate…
aiskillstore/marketplace
Trigger for: Labor-Hour IGCE, LH estimate, Time-and-Materials IGCE, T&M estimate, burdened hourly rate, burden multiplier, labor-category ceiling hours, materials estimate, proposed LH/T&M rate…
aiskillstore/marketplace
Trigger for: FFP IGCE, firm-fixed-price estimate, FFP cost model, proposed FFP rate validation, wrap-rate analysis, Agency BPA rate comparison, price-reasonableness memo, or fair-and-reasonable…
Cranot/roam-code
Codebase comprehension via roam-code CLI. An agent skill from Cranot/roam-code.
Cranot/roam-code
Review and maintain the technical instructions Roam gives coding agents: shipped skills, tool descriptions, preset guidance and generated instruction blocks.
Cranot/roam-code
Investigate and harden Roam detectors, CLI/MCP result contracts, and evidence consumers when dogfooding or correcting incomplete, misleading, or inconsistent analysis.
Cranot/roam-code
Turn a reproduced or recurring Roam failure into a durable correction, regression control or narrowly scoped project skill, and reconcile conflicting lessons.
Cranot/roam-code
Design or interpret a comparison of Roam performance, detector accuracy, retrieval or workflow value.
Cranot/roam-code
Define or revise a Roam product milestone and its engineering, adoption and offer-readiness sequence.
Works with
Categories
Draft, review, and improve Roam positioning and product copy across its website, README, offers, setup explanations, package descriptions, and metadata. Roam Product Writing is an agent skill from Cranot/roam-code. Draft, review, and improve Roam positioning and product copy across its website, README, offers, setup explanations, package descriptions, and metadata.
Roam Product Writing fits situations like: tasks that involve Copywriting; tasks that involve Positioning and messaging.
Run `npx skills add Cranot/roam-code --skill roam-product-writing -a claude-code`. Or copy the skill folder (.agents/skills/roam-product-writing in Cranot/roam-code) into .claude/skills/roam-product-writing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Cranot/roam-code --skill roam-product-writing -a codex`. Or copy the skill folder (.agents/skills/roam-product-writing in Cranot/roam-code) into .agents/skills/roam-product-writing in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Cranot/roam-code --skill roam-product-writing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/roam-product-writing, .gemini/skills/roam-product-writing, .github/skills/roam-product-writing and .opencode/skills/roam-product-writing in your project.
SKILL.md names no scripts, command-line tools or credentials: Roam Product Writing is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Roam Product Writing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Roam Product Writing: Wardley Mapping (tractorjuice/arc-kit, 2.3k stars), Competitor Monitor (hanzili/hanzi-browse, 177 stars), Write (ohad6k/emulo, 294 stars) and Igce Builder Cr (aiskillstore/marketplace, 433 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Cranot (a GitHub user) maintains it in Cranot/roam-code, which has 517 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 10, 2026.
Source: Cranot/roam-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.