The project requires a current Node.js runtime and VS Code. It has no runtime package dependencies. Clone the repository, open it in VS Code, and press F5 to start an Extension Development Host.
Run npm run check before committing. This performs JavaScript syntax checks and runs the deterministic compiler-core suite. Run npm run stress whenever a change can affect node parsing, traversal binding, graph edges, recursive projection, the profile, or the showcase.
Both commands must pass before changes are pushed.
Language behavior belongs in pgx-core. VS Code files may adapt source spans, commands, edits, and presentation, but must not duplicate node parsing, pointer binding, cycle detection, or recursive projection.
Lawful syntax and schema-profile interpretation must remain separate diagnostic categories. Traversal grouping and ordering must not be flattened into graph adjacency. Document and profile declarations must retain provenance rather than being destructively merged.
Do not infer pointer identity from a prefix, series, regular-expression convention, or letter case. Schema Profile 1 pointer fields are authoritative. Any editor feature that needs the pointer under a cursor should consume compiler occurrence spans rather than duplicate lexical rules.
Graph cycles are not automatically syntax errors. Expansion-cycle handling belongs to projection policy. New destructive transformations should validate fully and apply one atomic edit only after all selected input succeeds.
Small deterministic fixtures belong in scripts/core-check.js. Tests should assert AST geometry, source spans, binding provenance, structured diagnostics, and exact projected output where practical.
Large recursive changes must preserve or intentionally update the A109 SHA-256 snapshot in scripts/stress-check.js. A snapshot change should be reviewed as a language-behavior change, not refreshed as a routine test repair.
Update docs/PGX-LANGUAGE.md when lawful syntax, Schema Profile 1, pointer grammar, traversal grammar, binding, or projection terminology changes. Update docs/ARCHITECTURE.md when compilation phases, source layers, graph views, policies, or system boundaries change. Update docs/EDITOR-WORKFLOWS.md when user-visible commands or affordances change.