Skip to content
Back to skills

Topic

ASecurity

Read and update the shared brief of the topic a chat is filed under. Use when a chat belongs to a topic and something durable was decided or learned, when the user asks what the topic knows, or when asked to consolidate, refresh or rewrite a topic's brief.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 9, 2026
ai-agentspythongobashbackend

Security analysis

A100/100

Scanned October 9, 2026

npx -y skills add julienR2/jarvis --skill topic --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Topic?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Topic
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/julienr2-topic/badge)](https://www.skillsdirectory.com/skills/julienr2-topic)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: topic
description: Read and update the shared brief of the topic a chat is filed under. Use when a chat belongs to a topic and something durable was decided or learned, when the user asks what the topic knows, or when asked to consolidate, refresh or rewrite a topic's brief.
allowed-tools: Bash, Read
---

# Topic Skill

A **topic** is a group of chats that share one **brief**: what the topic is
about, what was decided, what is open, the facts and tools that matter there.
Every chat filed under a topic starts with the brief in its prompt, and every
routine posting into one of its chats runs with it. You do not need to fetch it
to know it — if this chat is in a topic, the brief is already in front of you,
inside `<article data-jarvis="topic-context">`.

What you *do* need this skill for: **writing it back**. The brief only stays
useful if the chat where something happened updates it.

All requests use:
```
Host: ${BACKEND_URL}
Header: X-Internal-Secret: ${INTERNAL_SECRET}
```

---

## Which topic am I in?

```bash
curl -s -H "X-Internal-Secret: $INTERNAL_SECRET" \
  "$BACKEND_URL/internal/conversations/$JARVIS_CONVERSATION_ID"
```

Returns the conversation with `topic: { id, name, context, context_updated_at }`,
or `topic: null` when the chat is not filed under one. Use `topic.id` below.

## Read a topic's brief and its chats

```bash
curl -s -H "X-Internal-Secret: $INTERNAL_SECRET" "$BACKEND_URL/internal/topics/<topic-id>"
```

Returns the topic with `context` (the brief, markdown) and `conversations`
(id, title, last activity). List every topic with `GET /internal/topics`.

## Update the brief

The whole text, not a diff — re-read, rewrite, save:

```bash
cat > /tmp/brief.md <<'MD'
**What this is** — …

**Decided**
- …

**Open**
- …

**Facts**
- …

**How to work here**
- …
MD

curl -s -X PATCH "$BACKEND_URL/internal/topics/<topic-id>/context" \
  -H "X-Internal-Secret: $INTERNAL_SECRET" -H "Content-Type: application/json" \
  -d "$(python3 -c 'import json,sys;print(json.dumps({"context": open(sys.argv[1]).read()}))' /tmp/brief.md)"
```

The other chats of the topic get the new text on their next turn.

---

## When to update

- A **decision** was taken in this chat (a choice, a price, a date, a go/no-go).
- A **fact** worth having at hand next time surfaced (a name, an id, an address,
  an amount, a deadline).
- Something in the brief is now **done or wrong** — remove or fix it; a stale
  brief is worse than a short one.
- The user asks to **consolidate**, **refresh** or **rewrite** the brief: read
  the recent chats of the topic (`/internal/conversations/<id>/messages?limit=40`
  on each), then rewrite it whole.

Not for: the running commentary of a task, drafts, anything you would not want
every future chat of the topic to read first.

## How to write it

- Markdown, **under 2000 characters**. Sections only when they have content:
  *What this is* (2–3 lines) · *Decided* · *Open* · *Facts* · *How to work here*
  (skills, connectors, files, conventions).
- Terse. Dates and amounts over adjectives. No chatter, no "as of today".
- Keep what a new chat would otherwise have to be told; drop the rest.
- After saving, tell the user in one line what changed in the brief.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.