Help us improve
Share bugs, ideas, or general feedback.
From Darkroom Engineering
Promotes a team-relevant learning (decision, convention, gotcha, incident, or pattern) to a shared GitHub knowledge repo after deduplicating against the existing index.
How this skill is triggered — by the user, by Claude, or both
Slash command
/darkroom:share-learningThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Promote a single learning to the team's shared knowledge repo (`darkroomengineering/team-knowledge`) —
Share bugs, ideas, or general feedback.
Promote a single learning to the team's shared knowledge repo (darkroomengineering/team-knowledge) —
the "public corpus" tier of the knowledge system (see docs/knowledge-system.md). Local,
personal knowledge stays in auto-memory; this skill is only for things another teammate's
agent would benefit from knowing.
Use when a learning meets the shared-tier bar from AGENTS.md (Knowledge Routing): an
architecture decision the team must follow, a library gotcha that affects everyone, a
convention, an incident postmortem, or a reusable pattern. If it is a personal preference,
local project state, or an external pointer, let auto-memory handle it instead — do NOT
post it.
Invoked as /share-learning <kind> "<text>" where <kind> is one of:
decision, convention, gotcha, incident, pattern.
If invoked without arguments, infer the most likely kind and a concise text from the
recent conversation, then show the user what you intend to post and confirm before posting.
Resolve the repo. Read $KNOWLEDGE_REPO from the environment; default is
darkroomengineering/team-knowledge. If $KNOWLEDGE_REPO is unset and you do not want
to use the default, stop and tell the user to set it (see docs/knowledge-system.md for
setup).
Dedup against the index (required). Fetch the current index:
gh api repos/$KNOWLEDGE_REPO/contents/INDEX.md --jq .content | base64 -d
Scan the note names and titles in the index for an entry that already captures this learning (semantic near-duplicate, not just exact match). If you find one:
Only continue to step 3 once the user has chosen, or when there is clearly no duplicate.
Post. Derive a name (kebab-case slug from the essence of the learning). Assemble
the note:
name = the slug; kind from the argument; added-by from
gh api user --jq .login (fall back to git config user.name if that fails);
tags optional; supersedes only when this note replaces an existing one.If creating a new note:
NOTE="---
name: <name>
kind: <kind>
tags: [<tag1>, <tag2>]
added-by: <login>
---
<body>"
gh api -X PUT repos/$KNOWLEDGE_REPO/contents/<name>.md \
-f message="knowledge: add <name>" \
-f content="$(printf '%s' "$NOTE" | base64)"
If updating an existing note, first GET its current sha:
SHA=$(gh api repos/$KNOWLEDGE_REPO/contents/<name>.md --jq .sha)
gh api -X PUT repos/$KNOWLEDGE_REPO/contents/<name>.md \
-f message="knowledge: update <name>" \
-f content="$(printf '%s' "$NOTE" | base64)" \
-f sha="$SHA"
Report. Surface the blob URL to the user:
https://github.com/$KNOWLEDGE_REPO/blob/main/<name>.md
.env. When unsure whether something is
team-relevant, ask the user rather than over-sharing.gh wrapper: you are exercising judgment
about whether the corpus already knows this.npx claudepluginhub darkroomengineering/cc-settings --plugin darkroomGoverns team knowledge for Claude Code — captures architectural decisions, patterns, conventions, and insights during sessions, then validates and shares them via qmd. Invoke on team-relevant discoveries or for bulk doc imports.
Batch-reviews personal knowledge files and IDEAS-BACKLOG entries for promotion to team-shared project knowledge. Recommends target destinations and lets user approve, modify, or skip.
Orchestrates knowledge workflow after commits, pushes, PRs, or decisions: triages context, syncs existing docs, captures new items with topology hints to keep docs accurate.