Agent skill · Audited from source
Publish To Confluence
skill · huytieu/COG-second-brainMIT licenceAudited 14 Oct 2026 · source 6ea1a6ff2160
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 6ea1a6ff2160 and found no filesystem, network or shell access and no hard-coded secrets. What it does: Publish any markdown file from the vault to Confluence with format conversion and approval gate
Cite
Cite this page
ModelsAtlas. “Publish To Confluence (huytieu/COG-second-brain)”. Retrieved 14 Oct 2026. https://modelsatlas.com/skills/huytieu/publish-to-confluence
Trust audit
Audit 0.4.1 · source read 14 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (0)
No findings at any severity. We re-audit when the source changes.
Audit 0.4.1 · source sha 6ea1a6ff2160 · 14 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherhuytieu GitHub userOwner of the repository this skill is read from
- Source folderhuytieu/COG-second-brain/.claude/skills/publish-to-confluenceThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdict6ea1a6ff2160A new audit runs when the source changes
- Repository statusNot archivedLast push 11 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Publish any markdown file from the vault to Confluence with format conversion and approval gate
---
name: publish-to-confluence
description: Publish any markdown file from the vault to Confluence with format conversion and approval gate
roles: [product-manager, engineering-lead, founder]
integrations: [confluence]
---
# COG Publish to Confluence Skill
## When to Invoke
- User wants to publish a document to Confluence
- User says "publish to Confluence", "push to wiki", "send to Confluence", "confluence publish"
- User has a markdown file they want to share with the team on Confluence
- After generating a PRD, release notes, or other document that should go to the wiki
## Agent Mode Awareness
**Check `agent_mode` in `00-inbox/MY-PROFILE.md` frontmatter:**
- If `agent_mode: team` — no significant benefit for this skill (single sequential operation)
- If `agent_mode: solo` — standard execution
## Command: `/publish-to-confluence`
## Pre-Flight Check
1. **Read `00-inbox/MY-INTEGRATIONS.md`** — Confluence MUST be listed under Active Integrations
- If Confluence is **not active**: Inform the user and stop.
```
Confluence is not in your active integrations.
Would you like to:
a) Set up Confluence integration (I'll add it to MY-INTEGRATIONS.md)
b) Export the document in a Confluence-compatible format for manual upload
```
- If Confluence is **disabled**: Skip silently per COG conventions. Suggest alternative publishing (HackMD, Notion) if active.
2. **Get current timestamp:** Run `date '+%Y-%m-%d %H:%M'` using Bash
---
## Execution Strategy
### Phase 1: Identify the Source Document
Determine what to publish:
**Option A: User specifies a file path**
```
Read the specified file from the vault.
```
**Option B: User describes the document**
```
Search for matching files:
1. Glob for likely matches in 04-projects/, 05-knowledge/, 01-daily/
2. Present candidates and let user choose
```
**Option C: Just-generated document**
If this skill is invoked right after generating a PRD, release notes, or other document, use that document.
### Phase 2: Configure Publishing Target
Ask the user (if not already provided):
```
Where should this be published in Confluence?
Required:
- Space key: [CUSTOMIZE: YOUR-SPACE-KEY] (or let me search for spaces)
- Parent page: [Page title or ID under which to nest this page]
Optional:
- Page title: [defaults to the document's H1 heading]
- Labels: [Confluence labels to add]
- Publish mode: "create new" or "update existing"
```
**If the user doesn't know the space or parent page:**
```
Use WebFetch to search Confluence:
GET /wiki/rest/api/space?limit=50
- List available spaces for the user to choose
GET /wiki/rest/api/content?spaceKey=[SPACE]&type=page&limit=25
- List pages in the space for parent page selection
```
### Phase 3: Convert Markdown to Confluence Format
Convert the markdown document to Confluence storage format (XHTML):
**Conversion rules:**
| Markdown | Confluence Storage Format |
|----------|--------------------------|
| `# Heading` | `<h1>Heading</h1>` |
| `## Heading` | `<h2>Heading</h2>` |
| `**bold**` | `<strong>bold</strong>` |
| `*italic*` | `<em>italic</em>` |
| `- list item` | `<ul><li>list item</li></ul>` |
| `1. list item` | `<ol><li>list item</li></ol>` |
| `[text](url)` | `<a href="url">text</a>` |
| `` `code` `` | `<code>code</code>` |
| Code blocks | `<ac:structured-macro ac:name="code"><ac:plain-text-body><![CDATA[...]]></ac:plain-text-body></ac:structured-macro>` |
| Tables | `<table><tbody><tr><th>...</th></tr><tr><td>...</td></tr></tbody></table>` |
| `> blockquote` | `<blockquote><p>quote</p></blockquote>` |
| `---` | `<hr />` |
| `- [ ] task` | `<ac:task-list><ac:task><ac:task-status>incomplete</ac:task-status><ac:task-body>task</ac:task-body></ac:task></ac:task-list>` |
| `- [x] task` | Same with `complete` status |
| YAML frontmatter | Strip entirely (not displayed in Confluence) |
**Important conversion notes:**
- Strip YAML frontmatter — it should not appear in the Confluence page
- Preserve table structure carefully
- Convert relative vault links to plain text (they won't work in Confluence)
- Handle nested lists properly
- Preserve emoji characters as-is
### Phase 4: Preview and Approval Gate
**CRITICAL: NEVER publish without explicit user approval.**
Present a summary to the user:
```
Ready to publish to Confluence:
Document: [filename]
Title: [page title]
Space: [space key]
Parent Page: [parent page title]
Mode: [create new / update existing]
Labels: [labels]
Content preview (first 500 chars):
[preview text]
Estimated page size: [approximate word count]
Proceed with publishing? (yes/no)
```
**Wait for explicit "yes" before proceeding.**
### Phase 5: Publish
#### Create New Page
```
Use WebFetch to POST to Confluence REST API:
POST [CUSTOMIZE: your-confluence-url]/wiki/rest/api/content
Headers:
Content-Type: application/json
Authorization: [from configured credentials]
Body:
{
"type": "page",
"title": "[page title]",
"space": { "key": "[SPACE_KEY]" },
"ancestors": [{ "id": "[PARENT_PAGE_ID]" }],
"body": {
"storage": {
"value": "[converted XHTML content]",
"representation": "storage"
}
},
"metadata": {
"labels": [
{ "prefix": "global", "name": "[label]" }
]
}
}
```
#### Update Existing Page
```
First, get the current page to obtain the version number:
GET [CUSTOMIZE: your-confluence-url]/wiki/rest/api/content/[PAGE_ID]?expand=version
Then update:
PUT [CUSTOMIZE: your-confluence-url]/wiki/rest/api/content/[PAGE_ID]
Body:
{
"type": "page",
"title": "[page title]",
"version": { "number": [current_version + 1] },
"body": {
"storage": {
"value": "[converted XHTML content]",
"representation": "storage"
}
}
}
```
### Phase 6: Confirm and Update Vault
After successful publishing:
1. **Confirm to the user:**
```
Published successfully!
Page: [Title]
URL: [Confluence page URL]
Space: [Space Key]
Version: [version number]
```
2. **Update the source vault fExcerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 6ea1a6f
git clone https://github.com/huytieu/COG-second-brain git -C COG-second-brain checkout 6ea1a6ff2160
The author documents no install command, so this uses the repository directly. Our verdict covers commit 6ea1a6ff2160 only.
Works in
The author has not said which agents this skill supports, and we have not tested it in any.
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
6ea1a6ff2160
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/huytieu/publish-to-confluence/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
huytieu/COG-second-brain
Deep strategic research engine — decomposes questions into parallel research threads, spawns multiple agents, and synthesizes into actionable strategic analysis
huytieu/COG-second-brain
Quick capture of raw thoughts with intelligent domain classification and competitive intelligence extraction
huytieu/COG-second-brain
Deep-dive 7-day analysis across all data sources for weekly reviews, board prep, and strategic planning
huytieu/COG-second-brain
Create user stories with duplicate checking across any project tracker (Linear, GitHub Issues, Jira)
huytieu/COG-second-brain
Generate personalized news intelligence with verified sources (7-day freshness requirement)
huytieu/COG-second-brain
Audit and export open issues from any project tracker with summary analysis and vault archival
Add this badge to your README
[](https://modelsatlas.com/skills/huytieu/publish-to-confluence/)
<a href="https://modelsatlas.com/skills/huytieu/publish-to-confluence/"><img src="https://modelsatlas.com/skills/huytieu/publish-to-confluence/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about Publish To Confluence
What does the Publish To Confluence skill do?
Is Publish To Confluence safe to install?
What can Publish To Confluence access on my machine?
How current is this page?
Sources
- github.com/huytieu/COG-second-brain/tree/main/.claude/skills/pub — the audited source at commit 6ea1a6ff2160 and every finding aboveObserved · 14 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the Publish To Confluence skill do?
- Is Publish To Confluence safe to install?
- What can Publish To Confluence access on my machine?