Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/testdouble/han/project-documentation-to-confluencenpx skills add testdouble/han --skill project-documentation-to-confluencegit clone --depth 1 https://github.com/testdouble/hanWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/testdouble/han/project-documentation-to-confluence)<a href="https://agentmods.dev/skills/testdouble/han/project-documentation-to-confluence"><img src="https://agentmods.dev/badge/skills/testdouble/han/project-documentation-to-confluence.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00159 | $0.01913 |
| Opus 5 | $0.00079 | $0.00957 |
| Sonnet 5 | $0.00032 | $0.00383 |
| Haiku 4.5 | $0.00016 | $0.00191 |
Grade A, and why
project-documentation-to-confluence scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Project Context
- personal config directory: !
bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh" 2>/dev/null || echo "$HOME/.claude" - project .han/config.md: !
cat .han/config.md 2>/dev/null || echo ""
As your first action, use the Read tool on .han/config.md inside the personal config directory path above. A read
that returns no file is no personal configuration: continue silently. When that file or the project .han/config.md
probe supplies content, apply it per config-rule.md, which governs precedence
between the two files, relative-path resolution, and what to do with a file that reads but cannot be used.
Project Documentation to Confluence
This skill produces project documentation with the han-documentation:project-documentation skill, lets the user review the
result, and then publishes it to a Confluence location that the user must specify. It is a thin orchestrator: the
documentation work belongs to han-documentation:project-documentation, and the publishing work belongs to
han-atlassian:markdown-to-confluence. This skill only validates its inputs, runs the documentation to a temporary
file, gets the user's review and publish choice, and hands the file to the publisher.
The five steps below are the whole skill. It does not resolve Confluence pages or call the Confluence MCP create/update
tools itself; han-atlassian:markdown-to-confluence owns all of that.
Step 1: Validate Inputs
Confirm the skill has everything it needs before spending effort producing documentation:
- Atlassian MCP reachable (hard requirement). Call
mcp__claude_ai_Atlassian__getAccessibleAtlassianResourcesto confirm the server is connected and retrieve the cloud ID(s). If the tool is not available, the call errors, or it returns no accessible resources (typically an authentication or configuration problem), stop immediately. Tell the user this skill requires the Atlassian MCP server to be installed, configured, and authenticated, and that they can re-run it once it is connected. Do not fall back to a local-only run; for local-only documentation, point them athan-documentation:project-documentation. This preflight runs first so a missing server fails before any documentation is generated. - A documentation subject. Confirm the request names a feature, system, component, or existing doc to document.
This is forwarded to
han-documentation:project-documentationverbatim in Step 2. - A Confluence destination. Confirm the request provides a target location: a Confluence page URL (to update
that page, or create a child under it), or a space (key or name) plus an optional parent page. If none was
provided, ask for one with
AskUserQuestion, explaining plainly that the skill needs an exact destination because it does not search Confluence. Do not resolve the page tree here — only confirm a location was given. Carry it through to Step 5;han-atlassian:markdown-to-confluenceresolves it.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 118 lines · 159 tokens per session scan A f0aa65f7980c
project-documentation-to-confluence is a skill published in the GitHub repository testdouble/han (247 stars, last pushed 6d ago), licensed MIT. It adds 159 tokens to every session and 1,913 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
golden-rss
Use when testing the rss golden build.
golden-chat-topics
Use when testing the goldenchattopics golden build.
golden-chat-single
Use when testing the goldenchatsingle golden build.
decided-import
Reformat ONE existing document (a decision, requirement, design, roadmap, or prompt) into ONE valid RAC (requirements-as-code) artifact, with a mandatory human-review step before any file is written and decided validate as the deterministic close. Use when a user wants to add or import a single existing decision or…
keep-the-why
Preserves or recovers the reasoning behind a codebase - architectural decisions, rejected alternatives, workarounds, incident learnings, operational constraints, and historical context the code itself cannot explain. Use when implementing or reviewing a non-trivial change involving a design decision, workaround…
summarize
Summarize conversations, logs, docs, or investigation notes into action-oriented text with evidence tags. Use for recap, handoff, CI failure digest, or MEMORY. Triggers: 总结, 汇总, summarize, 交接, 复盘, 调试总结.