Skip to content
cccskills
FreePublished on GitHub

divine-context

Use when starting work in any divine-* repo (divine-web, divine-mobile, divine-funnelcake, keycast, divine-blossom, divine-router, etc.) or when you've learned a cross-repo fact worth sharing back. The shared divine-context handbook at ~/code/divine/divine-context/ is the source of truth for cross-cutting architecture, Nostr usage, terminology, and the project catalog across the ~50 divine-* repos.

The English summary is being prepared. Showing the original description.

Works withGitHub
See how to install

Files included (1)

  • SKILL.md6.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Divine Context

The divine-context repo is the cross-repo handbook for the diVine platform. Every divine-* repo's CLAUDE.md should pull in @../divine-context/AGENT_CONTEXT.md, but if it doesn't, load it manually before doing real cross-repo work.

On disk

Cloned as a sibling of the current repo:

~/code/divine/
├── divine-context/          ← read this
├── divine-web/
├── divine-mobile/
├── divine-funnelcake/
└── ... (~50 divine-* repos)

If divine-context isn't cloned:

(cd ~/code/divine && [ -d divine-context ] || gh repo clone divinevideo/divine-context)

Reading divine-context

For everyday work, AGENT_CONTEXT.md is enough. It links out to deeper files:

FileRead when
AGENT_CONTEXT.mdAlways — single-page primer
PROJECT.mdNeed product context (what diVine is, who it's for)
ARCHITECTURE.mdTouching cross-service flows
PROJECTS.mdAsking "is there already a service for X?"
NOSTR.mdPublishing/querying/signing Nostr events
GLOSSARY.mdHit an unfamiliar term
ANDOTHERSTUFF.mdNeed parent-org context

These files describe state at the time they were written. If a file in a divine-* repo contradicts divine-context, trust the code — and if the contradiction is durable, propose a divine-context update (see below).

Updating divine-context

When you learn a cross-repo fact while working in a divine-* repo, propose it back. Cross-repo means: would an agent in a different divine-* repo benefit from knowing this? If no, it stays in this repo's CLAUDE.md or .claude/rules/.

Workflow

  1. Read this repo's key files (5 min, no deep dive): README.md, CLAUDE.md, AGENTS.md, .claude/rules/*, docs/**, package.json / Cargo.toml / pubspec.yaml / go.mod, top-level src/.
  2. Read every divine-context file (they're short).
  3. Build a proposal list — for each item: one line of what, one line of evidence (path:line in this repo).
  4. Show the proposal list to the user before editing anything. Wait for approval.
  5. For approved items only, branch from origin/main (not local main, which may be stale) and make the edits:
    cd ~/code/divine/divine-context
    git fetch origin main
    git worktree add .claude/worktrees/dc-<topic> -b update-from-<thisrepo>-<topic>-$(date +%Y-%m-%d) origin/main
    # edit files
    cd .claude/worktrees/dc-<topic>
    git add <only the files you changed>          # never -A
    git commit -m "<short desc>: <what changed>"
    git push -u origin HEAD
    gh pr create --title "..." --body "..."
    
    Use a worktree inside the divine-context checkout. Other agents may be editing divine-context concurrently; isolating in a worktree avoids branch-state collisions. Put it in .claude/worktrees/ (gitignored there) — not /tmp. On macOS /tmp is swept, and a worktree there takes any uncommitted work with it; see WORKTREES.md in divine-context. Remove it with git worktree remove once the PR merges, since nothing cleans it up for you.
  6. One logical change per PR. Five unrelated improvements = five PRs.

What goes in divine-context (and what doesn't)

Goes in divine-contextStays in this repo
Cross-repo architecture / data flowRepo-local file paths, hooks, components
New event kinds, NIPs, relay gotchasImplementation details of one repo's code
Domain terms an outside agent would hit coldRepo-specific code conventions
<!-- TODO --> markers you can now answerDebugging recipes (those go in skills/)
Catalog corrections in PROJECTS.mdOne-off solutions to one repo's bug

Hard rules

  • Don't invent. Cite a file path (and line if practical) in this repo for every claim. If you can't verify in 2 minutes, mark the proposed change <!-- TODO: verify --> instead of guessing.
  • No secrets, internal URLs, or anything sensitive. divine-context is intended to eventually be sharable with outside contributors.
  • No copying of repo-local rules. Flutter/BLoC specifics belong in divine-mobile, not divine-context. The "Flutter / divine-mobile specifics" subsection of AGENT_CONTEXT.md is the only exception.
  • Length is a budget, not a void to fill. Prefer tightening existing prose to adding new prose. AGENT_CONTEXT.md is loaded into every divine-* agent's session — additions there must earn their place.
  • Don't git add -A. Stage only the divine-context files you changed.
  • Don't amend existing commits. Create new ones.
  • Don't open empty PRs. If you have nothing to propose after reading, say so and stop.

End-of-task report

After running the update workflow, report:

Proposed changes to divine-context:
- <file>: <one-line description>  — evidence: <path:line in this repo>
- ...

PR opened: <url>
(or: No PR — divine-context is accurate for this repo.)

Common rationalizations to ignore

ExcuseReality
"I'll just edit divine-context directly without showing the user first"Some proposals may be intentional omissions. Show the list first.
"This is repo-local but feels useful, so I'll add it anyway"Cross-repo only. Repo-local belongs in CLAUDE.md.
"Local main looks fine, no need to fetch"Local main may be days stale. Always branch from origin/main.
"I'll skip the worktree, just git checkout in place"Concurrent agents may be editing. Use a .claude/worktrees/dc-<topic> worktree.
"I'll put the worktree in /tmp, it's throwaway"/tmp is swept on macOS and takes uncommitted work with it. Keep it inside the divine-context checkout.
"I'll bundle five small fixes into one PR — easier to review"One logical change per PR. Reviewers can disagree with one without blocking the others.
"I'll git add -A — faster"Catches unrelated files. Stage by name.
"I can't verify this fact, but it sounds right"Mark <!-- TODO: verify --> instead of inventing.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Fix ArgoCD ExternalSecret deployment failing with "namespace X is not permitted in project Y". Use when: (1) ExternalSecret shows OutOfSync in ArgoCD but won't sync, (2) ArgoCD application status shows "namespace X is not permitted in project 'infrastructure'", (3) ExternalSecret targets a namespace managed by a different ArgoCD project, (4) Using apps-of-apps pattern with separate infrastructure and application projects.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile266Updated Oct 19, 2026

Art direction for any content — reads text, PDF, Word, HTML, PPT, then proposes 2-3 creative directions with photography style, mood, and visual language. After selection, generates AI image prompts and visual briefs section-by-section. Use when the user shares content and needs visual direction, image sourcing, or creative direction for any material.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile266Updated Oct 19, 2026

Fix "Null check operator used on a null value" errors when an object is set to null during an async await. Use when: (1) Object reference is nullified while awaiting, (2) Code accesses object with ! after await returns, (3) Cancel/dispose operations run concurrently with async operations on same object. Solution: capture local reference before await.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile266Updated Oct 19, 2026

Add custom metadata headers (x-amz-meta-*) to AWS v4 signed requests for GCS S3-compatible API. Use when: (1) Adding custom metadata to GCS uploads via S3 API, (2) Getting signature mismatch errors after adding new headers, (3) x-amz-meta-* headers being ignored or causing 403 errors. Custom headers MUST be included in canonical headers and signed headers list.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile266Updated Oct 19, 2026

Fix password/secret authentication failures caused by trailing newlines when creating Google Cloud secrets (or similar) with bash here-strings. Use when: (1) Password authentication fails with correct password, (2) Secret created with `<<< "value"` syntax, (3) Error like "password authentication failed" or "invalid token" despite correct value. Bash here-strings (`<<<`) add a trailing newline that corrupts secrets.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile266Updated Oct 19, 2026

Fix silent video/media processing failures caused by URL extraction code that filters on file extensions (.mp4, .webm, .webp). Use when: (1) Media moderation, transcoding, or analysis silently skips files from Blossom or content-addressed storage servers, (2) URL extraction from Nostr event tags (imeta, r tags) drops URLs without recognized extensions, (3) CDN fallback URLs append .mp4 but the actual server uses extensionless content-addressed paths like /{sha256}. Common in Nostr video events (kind 34236) where different clients use different URL formats.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile266Updated Oct 19, 2026

See all skills by divinevideo

Report a problem with this skill