AGENTS.md · diff

git:20261027.374b781 to git:20261028.976b940

1 added, 1 removed. Audit A to A.

# Agents — `pascalorg/editor`
Public, open-source home of `@pascal-app/{core,viewer,editor,nodes,mcp,cli,ifc-converter}` and the standalone editor app. Consumed as npm packages and, in `pascalorg/private-editor`, as a git submodule.
**Read `DECISIONS.md` first**: what Pascal is, the architecture invariants (E-IDs), the testing rule (T-001), and what is explicitly delegated to you. Everything else here is a map.
## Packages
| Path | Owns |
|---|---|
| `packages/core` | Scene graph, schemas, stores, commands, registry, services — pure logic, no runtime Three.js (E-001). `src/capture/` = capture-session contracts |
| `packages/viewer` | The 3D canvas: renderers, viewer systems, presentation state. Editor-agnostic (E-001) |
| `packages/editor` | The editing experience: tools, `useEditor`, panels, floor plan, paint, shortcuts, overlays |
| `packages/nodes` | The built-in plugin `pascal:core`: one folder per node kind with its definition (E-002) |
| `packages/mcp` | MCP server, scene storage adapters, agent tools |
| `packages/cli` | Packed CLI + portable runtime |
| `packages/ifc-converter` | IFC import/export |
| `apps/editor` | Standalone app composing viewer + editor |
| `skills/` | Public agent skills shipped with the plugin (product payload, validated in CI) |
## Where to look
- Architecture detail, on demand: `wiki/architecture/` (index in its `README.md`). Read the page for the boundary you touch: a new kind → `node-definitions.md`, `node-schemas.md`; a tool or interaction → `tools.md`, `interaction-scope.md`; anything in `viewer` → `viewer-isolation.md`, `layers.md`; selection → `selection-managers.md`; an MCP tool or resource, or the `pascal-3d` skill → `agent-surfaces.md` (same contract and knowledge as the hosted AI chat).
- Reviewing a PR: `.agents/skills/review-architecture/SKILL.md`.
- Opening a PR: `.agents/skills/open-pr/SKILL.md`.
- Humans: `README.md`, `SETUP.md`, `CONTRIBUTING.md`.
`CLAUDE.md`, `GEMINI.md` and `.github/copilot-instructions.md` symlink here.
## Commands
`bun run ci` is exactly what CI runs (check, i18n:check, skills:validate, check-types, test, build). Localization catalog and language-pack guidance lives in `i18n/README.md`. The git hooks (installed by `bun install`) are fast feedback: Biome on staged files, typecheck of the packages you changed.
## Working agreements
- Rewrite when the shape is wrong; say what you are replacing and why; keep the PR to its stated goal.
- No compatibility shims, dead code or speculative abstractions; comments only for a non-obvious *why*.
- Old scenes must still load after your change (E-003).
- Never cite private-repo plan paths from this repo (E-015).
- - A bot may merge its own PR once required CI is green and a review from a different bot, on the current head, approves with no unresolved P0/P1 comments. Anything touching auth, payments, secrets, infra, moderation, user data or schema migrations needs the Security bot's review; otherwise a Codex, Cursor or relevant fleet bot review is enough. A human is still required for secrets or keys, billing or spend, new access, sign-ins or 2FA, permanently deleting production data, and anything sent externally under a person's name. CI stays required: never weaken or skip checks.
+ - Claude Code, Codex and other local coding agents work within the user's requested scope. An agent may merge its own PR with green required CI on the current head, any GitHub-required reviews satisfied, and no unresolved P0/P1 comments. Honor requests to leave work for review or unmerged. No named bot, bot label or external approval service is required. Human authorization remains required for secrets or keys, billing or spend, new access, sign-ins or 2FA, destructive or access-widening production data changes, and anything sent externally under a person's name; do not ask again when already authorized. CI stays required: never weaken, skip or bypass checks or branch protection.