share-learning

SkillDocs & knowledge

Promote a team-relevant learning to the shared team-knowledge repo, deduping against existing notes first. Triggers "share this", "promote to the team repo", "add to the knowledge base", or after a gotcha/decision/convention worth team-wide awareness.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the share-learning skill

What this skill tells your AI

The instructions your AI receives, as published by darkroomengineering/cc-settings in skills/share-learning/SKILL.md and read by ahel’s review.

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.

When to use

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.

Inputs

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.

Before starting, run gh auth status and confirm the authenticated account can read darkroomengineering/team-knowledge (or $KNOWLEDGE_REPO) with gh api repos/${KNOWLEDGE_REPO:-darkroomengineering/team-knowledge} --jq .full_name. Stop with the failed prerequisite if either check fails. Do not wait until the write step to surface missing authentication or repository access.

Steps

  1. Resolve the repo. Read $KNOWLEDGE_REPO from the environment; default is darkroomengineering/team-knowledge:

    KNOWLEDGE_REPO="${KNOWLEDGE_REPO:-darkroomengineering/team-knowledge}"
    
  2. 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:

    • Show the user the existing note name and its summary line.
    • Ask whether to skip (already covered), post anyway (genuinely distinct), or revise your proposed entry to complement it.

    Only continue to step 3 once the user has chosen, or when there is clearly no duplicate.

  3. Post. Derive a name (kebab-case slug from the essence of the learning). Assemble the note:

    • Frontmatter: 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.
    • Body: what happened + why it matters + how to apply it. One learning per note, atomic and self-contained.

    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"
    
  4. Report. Surface the blob URL to the user: https://github.com/$KNOWLEDGE_REPO/blob/main/<name>.md

Notes

  • This skill posts to a shared, team-visible repo — treat it like publishing. Never post secrets, credentials, or anything from .env. When unsure whether something is team-relevant, ask the user rather than over-sharing.
  • The dedup step is what makes this more than a gh wrapper: you are exercising judgment about whether the corpus already knows this.

Signals

GitHub stars
44
Forks
3
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
share-learning
Source
github.com/darkroomengineering/cc-settings