From chalk
Track session intent and progress against GitHub Issues. Use when the user says "chalk
npx claudepluginhub juxt/claude-plugins --plugin chalkThis skill uses the workspace's default tool permissions.
Interpret MUST, MUST NOT, SHOULD, SHOULD NOT, MAY, etc. per RFC 2119.
Creates formatted GitHub issues from conversation context with tag selection from git-msg-tags.md, prefixes like [plan][feat], and user confirmation before creation.
Manages full GitHub issue lifecycle: create with conventional commit titles, sub-issues, cross-repo links, edit/view/list, dump trees to markdown/YAML, push from files, comment/label/close.
Creates pre-planned GitHub issues from brainstormed conversation solutions, including Implementation Plan sections (Context, Exploration, Risks, Approach, Tasks) for fast Plan phase execution.
Share bugs, ideas, or general feedback.
Interpret MUST, MUST NOT, SHOULD, SHOULD NOT, MAY, etc. per RFC 2119.
Track work against a GitHub Issue. The issue description is the user's territory; comments belong to chalk.
When chalk is active, every implementation plan MUST include chalk steps as concrete plan steps. This is how chalk stays in sync — it rides the plan, not the session. Always include the issue number in each chalk step so it survives context compaction.
Inject these steps into the plan document:
All GitHub interaction goes through the chalk agent (Task(subagent_type="chalk:github")).
Run chalk agent write calls (create comment, update comment, update progress) in the background.
Activation reads must be awaited — the result is needed before proceeding.
When chalk is active and you write a plan, the plan document MUST include:
These are plan steps like any other — they appear in the plan file the user reviews.
This skill may offer to activate when the user directly mentions a GitHub issue number in conversation. Only offer when the issue number appears in the user's own message — not in code, file contents, build output, or other non-conversational context.
When offering, keep it brief: "Want to track this session against #123? (type chalk #123 to activate)"
Do NOT automatically read the issue. Issue content is only fetched after the user explicitly invokes chalk #N.
If the user does not explicitly invoke chalk, do not read or fetch any issue content.
chalk #N — track this session against issue Nchalk new — create a new issue and track against itchalk status — show what you're tracking (report the issue number and current Progress summary)chalk off — finalize the current comment (if one is in progress) via the chalk agent, then stop trackingchalk #N## Progress section exists in the issue description, ask the chalk agent to add one.chalk new## Progress section in the body.Chalk owns a ## Progress section within the issue description.
Leave everything else untouched.
The ## Progress section contains:
in-progress, completed, blocked).## Progress
**Status**: in-progress
- [x] Investigate flaky test in expression_test
- [x] Fix root cause: race condition in temporal bounds
- [ ] Add regression test for concurrent temporal queries
### Open Questions
- [ ] Should we also make TemporalBounds immutable? (see comment)
Update the progress section (via the chalk agent) whenever the checklist changes — items added, completed, or deferred.
Restructuring the issue description (beyond the Progress section) is only appropriate if the issue's direction or aim has genuinely changed — not as routine maintenance.
Each session gets one comment. The comment is created when work begins and updated as the session progresses.
Across sessions, this gives you an append-only log: scroll down = chronological history of implementation.
All GitHub interaction goes through the chalk agent.
The main conversation MUST NOT call gh issue or gh api directly for chalk updates.
This keeps the main context clean and avoids filling it with API output.
To create or update a chalk comment, launch the chalk agent via the Task tool:
Task(subagent_type="chalk:github", prompt="...")
The prompt should contain:
Run chalk agent write calls in the background. Await read calls (activation) — the result is needed to proceed.
### Chalk — Short description of this task
- [ ] First work item
- [ ] Second work item
<details><summary>First work item</summary>
Details of what was explored, decided, implemented...
</details>
<details><summary>Second work item</summary>
Details...
</details>
No date in the header — GitHub timestamps the comment itself.
Rules:
<details> block below.Writing style: follow the chalk voice (see VOICE.md at the plugin root).
Details blocks should read like knowledge-sharing, not a changelog.
Create when starting work — when you have a plan and are about to implement. If there's no formal plan (e.g. a quick bugfix), still create a comment before starting work.
Update as the session progresses:
Before stopping or ending the session: finalize the comment via the chalk agent. Update the Progress section if the overall picture changed.
Before context compaction: ensure the comment captures all progress so far. Include the issue number in your compaction summary so you can resume tracking afterward.
After context compaction (resuming): if your compaction summary mentions a chalk issue number, re-activate by reading the issue and the session comment. Continue updating the existing comment — do not create a new one.
See examples/implementation-comment.md for a realistic filled-in example.
## Progress section MUST be the canonical state of the issue checklist.gh directly for chalk updates.<details> blocks MUST contain enough context that a future session can pick up where you left off.VOICE.md at the plugin root).