PuPu
AGENTS.md36 starsChanged 37 days agoApache-2.0View on GitHub
This project is indexed by GitNexus as PuPu (41812 symbols, 140105 relationships, 1104 execution flows). Index stale? Run node .gitnexus/run.cjs analyze --index-only from the project root — it auto-selects an available runner. No .gitnexus/run.cjs yet? Bootstrap with npx, bunx, or pnpm dlx — e.g. bunx gitnexus@latest analyze (npm 11 npx crash; #1939). These are load-bearing — violating them breaks the build or the architecture. Canonical source: CLAUDE.md and .claude/CLAUDE.md. Frontend (src/, electron/): - JavaScript only — no TypeScript, no PropTypes.…
We split this AGENTS.md into the rules it gives an agent
11 rules. About 0 are common, 4 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
MUST run impact before editing: Use impact({target: "symbolName", direction: "upstream"}) or node .gitnexus/run.cjs impact "symbolName" …
- Very specific: line 11
MUST analyze graph changes before committing: Use detect_changes({scope: "all"}) (MCP) or node .gitnexus/run.cjs detect-changes --scope all …
- Very specific: line 12
MUST warn on HIGH/CRITICAL risk pre-edit.
- Distinctive: line 19
NEVER edit a function, class, or method before MCP/CLI impact analysis.
- Very specific: line 20
NEVER ignore HIGH or CRITICAL risk warnings from impact analysis, and never read UNKNOWN as an all-clear — it means the walk could not …
- Very specific: line 21
NEVER rename symbols with find-and-replace — use rename which understands the call graph.
- Distinctive: line 22
NEVER commit before MCP/CLI graph change analysis.
- Distinctive: line 55
All function components — no class components.
- Very specific: line 64
Run unchain tests with its own pytest (run_tests.sh) — do NOT use npx jest.
- Very specific: line 65
After changing unchain .py, the sidecar must be restarted to take effect — note this in your report.
- Distinctive: line 68
Run GitNexus impact analysis before editing any symbol (see the GitNexus block above).
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- gitnexus:start -->GitNexus — Code Intelligence
This project is indexed by GitNexus as PuPu (41812 symbols, 140105 relationships, 1104 execution flows).
Index stale? Run
node .gitnexus/run.cjs analyze --index-onlyfrom the project root — it auto-selects an available runner. No.gitnexus/run.cjsyet? Bootstrap withnpx,bunx, orpnpm dlx— e.g.bunx gitnexus@latest analyze(npm 11 npx crash; #1939).
Always Do
- MUST run impact before editing. Use
impact({target: "symbolName", direction: "upstream"})ornode .gitnexus/run.cjs impact "symbolName" --direction upstream --repo .; report callers, processes, and risk. Never substitute grep for graph analysis. - MUST analyze graph changes before committing. Use
detect_changes({scope: "all"})(MCP) ornode .gitnexus/run.cjs detect-changes --scope all --repo .(CLI fallback).partial: trueortruncated: trueis not a clean check — a zero means unseen, not unaffected; re-run it. For regression review:detect_changes({scope: "compare", base_ref: "main"})ornode .gitnexus/run.cjs detect-changes --scope compare --base-ref "main" --repo .. - MUST warn on HIGH/CRITICAL
riskpre-edit; never useriskSharedAxesto waive a HIGH/CRITICALriskwarning. Compare File/symbol: MCP File omits axes; Graph-RAG expands File. - MUST treat
risk: UNKNOWNas unresolved, not as low. An empty caller set is not evidence the symbol is unused — it can also mean the callers are not resolvable by the index (plain-object property access, dynamic dispatch, cross-language calls).impactpairsUNKNOWNwith ariskNotesaying so. Confirm with a text search before treating the symbol as safe to change or delete; do not proceed on the strength of a zero. - MUST use
query({search_query: "concept"})for concepts/flows,context({name: "symbolName"})for a named symbol, orimpactfor blast radius, on read-only callers, dependencies, imports, or execution flow. Graph first; text search only for empty/UNKNOWN/literals. - For security review,
explain({target: "fileOrSymbol"})lists taint findings (source→sink flows; needsanalyze --pdg).
Never Do
- NEVER edit a function, class, or method before MCP/CLI impact analysis.
- NEVER ignore HIGH or CRITICAL risk warnings from impact analysis, and never read
UNKNOWNas an all-clear — it means the walk could not answer, which is the one verdict that requires confirming by other means. - NEVER rename symbols with find-and-replace — use
renamewhich understands the call graph. - NEVER commit before MCP/CLI graph change analysis.
Resources
| Resource | Use for |
gitnexus://repo/PuPu/context | Codebase overview, check index freshness |
gitnexus://repo/PuPu/clusters | All functional areas |
gitnexus://repo/PuPu/processes | All execution flows |
gitnexus://repo/PuPu/process/{name} | Step-by-step execution trace |
CLI
| Task | Read this skill file |
| Understand architecture / "How does X work?" | .agents/skills/gitnexus-exploring/SKILL.md |
| Blast radius / "What breaks if I change X?" | .agents/skills/gitnexus-impact-analysis/SKILL.md |
| Trace bugs / "Why is X failing?" | .agents/skills/gitnexus-debugging/SKILL.md |
| Rename / extract / split / refactor | .agents/skills/gitnexus-refactoring/SKILL.md |
| Tools, resources, schema reference | .agents/skills/gitnexus-guide/SKILL.md |
| Index, status, clean, wiki CLI commands | .agents/skills/gitnexus-cli/SKILL.md |
<!-- gitnexus:end --><!-- The section below is hand-maintained. Keep it OUTSIDE the gitnexus block so `npx gitnexus analyze` does not overwrite it. -->PuPu Conventions (for Codex and any agent writing code here)
These are load-bearing — violating them breaks the build or the architecture. Canonical source: CLAUDE.md and .claude/CLAUDE.md.
Frontend (src/, electron/):
- JavaScript only — no TypeScript, no PropTypes. Never create
.ts/.tsxfiles. - Inline styles only — no CSS modules, no styled-components. Theme via
isDarkfrom ConfigContext. - All function components — no class components.
- Custom router
BUILTIN_COMPONENTs/mini_react/mini_router.jsfor internal routing — not react-router-dom. - React never touches
ipcRenderer. System access goes through preload bridges (window.unchainAPI,ollamaAPI,themeAPI, etc.). IPC channel constants inelectron/shared/must match both ends. - localStorage writes go only through helpers in
src/SERVICEs/, never directly from components. - Overlay
zIndexcomes fromZinBUILTIN_COMPONENTs/layer/z_layers.js— never a literal — for anything portalled todocument.bodyorposition: fixed.z_layers_guardenforces this, but only for literals ≥1000 (CONTENT_RAISED: 10andSCROLL_OVERLAY: 500are legitimately small), so sub-1000 literals and wrong-layer choices are review's job:Z.MODALwhereZ.POPOVERbelongs passes the guard and is still wrong. - Electron tests have both
.jsand.cjsvariants — keep them in sync.
Backend (unchain_runtime/server/):
- Python Flask sidecar. Key files:
routes.py/route_chat.py,unchain_adapter.py,memory_factory.py,character_store.py. Tests inunchain_runtime/server/tests/. - Run unchain tests with its own pytest (
run_tests.sh) — do NOT usenpx jest. Run PuPu/JS tests withreact-scripts test. - After changing unchain
.py, the sidecar must be restarted to take effect — note this in your report.
General:
- Run GitNexus impact analysis before editing any symbol (see the GitNexus block above). Warn on HIGH / CRITICAL.
- Match the surrounding code's style and idiom. No unrelated refactoring.
- The agent currently implementing a direct Release child may refine that issue's GitHub body before or during implementation.
[DRAFT]is initial intent, not a delivery gate; this body-only authority does not permit scope, title, label, Project-field, assignee, parent/child, release-membership, defer/cancel, or closure changes. GitHub assignee alone does not establish implementation responsibility.
Removed mechanisms: Quorum/court workflows, code-owner routing, role confirmations, case tooling, and their role definitions and records have been removed. Do not recreate them or use them as a delivery gate. Historical material is available through Git history only.
Release workflow: Prefer the smallest matching release skill: release-open-sprint, issue-draft-ticket, issue-refine-ticket, issue-feature-audit, or release-close-sprint. These skills plus the Release issue, a direct implementation plan when needed, and evidence-backed tests are the project workflow. If a skill is unavailable, proceed with the equivalent direct workflow; never fall back to a retired mechanism.
Cross-boundary work: Any change crossing a repository, process, provider, serialization, persistence, or durable-state boundary must follow .claude/rules/cross-boundary-contract-gate.md. Record BC-###, applicable SEQ-###, and AC-### directly in the Release issue or implementation plan, then test the exact deployed artifact pair before active rollout. No owner field, confirmation, proposal, ruling, or court record is permitted or required.
Shared project skills
All maintained PuPu skills live in .agents/skills/<name>/SKILL.md. Codex discovers this directory directly; .claude/skills/<name> is a relative symlink to the same directory for Claude Code. Edit the canonical files only, keep both entrypoints aligned, and resolve scripts/references relative to the loaded skill directory. Do not recreate personal copies or retired skill names. Release skills manage versions and the release pipeline; issue skills manage ticket intake, refinement, implementation and audit; dev-ui skills manage UI conventions; community skills manage growth, repository polling, tags and Store verification. GitNexus skills keep their upstream names.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository21 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- CLAUDE.mdCLAUDE.md
- community-growth-analystSkill
- community-repo-issue-pollingSkill
- community-repo-tags-optimizationSkill
- community-store-verify-pluginSkill
- dev-ui-modal-standardSkill
- gitnexus-cliSkill
- gitnexus-debuggingSkill
- gitnexus-exploringSkill
- gitnexus-guideSkill
- gitnexus-impact-analysisSkill
- gitnexus-refactoringSkill
- issue-draft-ticketSkill
- issue-feature-auditSkill
- issue-refine-ticketSkill
- issue-start-ticketSkill
- release-close-sprintSkill
- release-open-sprintSkill
- release-run-pipelineSkill
- test-evaluate-long-runSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

