You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+16-14Lines changed: 16 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,26 +19,28 @@ not a work-in-progress. Treat the live artifacts below as the source of truth
19
19
20
20
| Thing | Current | Where |
21
21
|-------|---------|-------|
22
-
|**Core package**|`@chanmeng666/archlang@1.20.0` (published, `latest`, with provenance — released tokenlessly via `.github/workflows/release.yml` OIDC trusted publishing) | npmjs.com/package/@chanmeng666/archlang|
22
+
|**Core package**|`@chanmeng666/archlang@1.21.0` (published, `latest`, with provenance — released tokenlessly via `.github/workflows/release.yml` OIDC trusted publishing) | npmjs.com/package/@chanmeng666/archlang|
23
23
|**Agent interface**| the `arch`**CLI** (`--json`, exit codes, stdin — incl. `ast`/`complete`/`fix`/`suggest`, `compile --from-json`/`-f txt`, `validate --graph`, v1.14's `validate --intent`/`--feedback` + `score --brief`, and the v1.17 **self-describing + bounded-output** layer: manifest-rendered per-command `--help` with worked examples, `--version`, exit-3 did-you-mean on an unknown flag/verb, `describe --room/--select`, `lint\|validate --code/--severity`, `context --section`, `fix --dry-run/--backup` + unified diff) + `SKILL.md` + `spec.llm.md` + **`llms-full.txt` / `arch context`** + **`schemas/plan.schema.json`** + **`schemas/intent.schema.json`** + **`grammars/archlang.gbnf`**. Primary interface stays the CLI; an **optional MCP shim** (`packages/mcp`) is a discoverability channel, not a replacement |`src/cli.ts`, `SKILL.md`, `spec.llm.md`, `llms-full.txt`, `packages/mcp`|
24
24
|**MCP server**|`@chanmeng666/archlang-mcp@0.2.2` (published, `latest`; registry entry `io.github.ChanMeng666/archlang-mcp` v0.2.2 live on registry.modelcontextprotocol.io; `packages/mcp/`; stdio shim over the library; tools compile/describe/lint/validate (incl. `intent`)/**score**/repair/fix/suggest/complete + spec/context/schema/**intent-schema**/grammar resources; SDK dep quarantined here, core stays zero-dep) |`packages/mcp/`, `server.json`|
25
25
|**VS Code extension**|`ChanMeng.archlang@0.8.0`**live on the Marketplace** (2026-07-26; rebundles core 1.19.0 — `flush`, `dim faces`/`clear`, `W_FIXTURE_BACK_TO_ROOM`/`W_DIM_INSIDE`/`W_DIM_NO_WALL`/`E_FURN_FLUSH`, stable-ref `suggest`). **0.9.0 is built and packaged but NOT yet uploaded** — `editors/vscode/archlang-0.9.0.vsix` rebundles core 1.20.0 (`paper`/`axes`/`schedule`/`legend`, `W_SCALE_OVERFLOW`, the operative drawing scale); the extension bundles the core at build time, and `.vsix` files are gitignored, so the artifact is local to whoever ran `npm run package`. Upload stays a human web step at marketplace.visualstudio.com/manage/publishers/ChanMeng (no CI publish exists) | marketplace.visualstudio.com/items?itemName=ChanMeng.archlang |
|**Git**|`main`, tags `v1.0.0` → `v1.20.0` (latest; a `v*` tag push triggers the tokenless OIDC release workflow) | github.com/ChanMeng666/archlang |
28
+
|**Git**|`main`, tags `v1.0.0` → `v1.21.0` (latest; a `v*` tag push triggers the tokenless OIDC release workflow) | github.com/ChanMeng666/archlang |
29
29
|**Dataset**| HF `ChanMeng666/archlang-repair-trajectories` (**published, live 2026-07-13** — repair 1200 + authoring 400 rows) — two splits, fully synthetic, self-verifying, CC0-1.0, deterministic from seed `20260712`; generator `dataset/` (`npm run dataset:gen`), permanent CI leakage guard `test/dataset.test.ts`|`dataset/`, huggingface.co/datasets/ChanMeng666/archlang-repair-trajectories |
30
-
| **Tests** | 1489 passing (120 files, incl. the fault-injection L1 gate, the G1 oracle-isolation guards, the L2 protocol tests, the judge byte-equivalence fixture, the intent-channel suites, the vocabulary-equivalence classification pin, the dataset contamination/determinism guard, and v1.17's CLI-surface suites — FLAG_KEYS↔manifest bidirectional drift, per-command help/examples, filters-never-gate, the `context --section` splitter-to-generator weld, and `test/docs-flags.test.ts`, the docs↔manifest gate that fails if any hand-written doc names a flag its command doesn't declare, plus v1.19's drawing-quality suites — fixture orientation, `flush` placement, the openings render pass, and `test/repair-coverage.test.ts`, whose postcondition is that every piece a lint pass flags gets a change entry or an `unresolved` entry, never nothing, plus v1.20's sheet-and-datum suites — `test/axes.test.ts` (GB/T numbering incl. the `I`/`O`/`Z` skip and the descending-`y` lettering), `test/sheet.test.ts` (the paper/scale size table, closed-form auto-fit, `W_SCALE_OVERFLOW`, and a pin that a plan with no `paper` is byte-identical) and `test/schedule.test.ts` (schedule rows equal `describe()`'s own areas, legend lists only what is drawn), plus the multi-storey suites — `test/levels.test.ts` and v1.21's `test/vertical.test.ts` (registry dispatch for the three new elements, the drawn symbols, the obstruct-except-the-entry-edge nav-grid rule, same-id shaft identity in `describe().vertical`, upper-storey reachability ± its counterexample, `W_STAIR_UNMATCHED` ±, and cross-level `checkGraph`)) + offline authorability eval (26 briefs, judge v2, `npm run eval:ci`, in CI); typecheck (`noUncheckedIndexedAccess` on) + build + `npm run lint` (Biome) clean | — |
[orientation]` makes the drawing scale **operative** (every annotation size becomes a constant number
34
-
of mm on the sheet × the scale denominator, with closed-form auto-fit and the advisory
35
-
`W_SCALE_OVERFLOW`), `axes { x at … / y at … }` adds the GB/T 50001 positioning-axis grid (derived
36
-
`1 2 3` / `A B C` labels, dash-dot lines + bubbles on layer `A-GRID`, and `dims auto` chain 2 becomes
37
-
the true axis chain), and `schedule rooms` + `legend` add margin tables derived from the plan itself.
38
-
New `describe()` keys `axes` / `sheet` / `schedule`; new flagship `examples/museum.arch` (~100 × 60 m,
39
-
14 rooms, A1 at 1:200). A plan declaring none of the four keywords is byte-for-byte unchanged.
40
-
(v1.19.0, 2026-07-25, was the drawing-quality round — `flush`, GB/T `dims auto`, derived fixture
41
-
orientation.) The table above is what is live. Canonical release notes
30
+
| **Tests** | 1489 passing (120 files, incl. the fault-injection L1 gate, the G1 oracle-isolation guards, the L2 protocol tests, the judge byte-equivalence fixture, the intent-channel suites, the vocabulary-equivalence classification pin, the dataset contamination/determinism guard, and v1.17's CLI-surface suites — FLAG_KEYS↔manifest bidirectional drift, per-command help/examples, filters-never-gate, the `context --section` splitter-to-generator weld, and `test/docs-flags.test.ts`, the docs↔manifest gate that fails if any hand-written doc names a flag its command doesn't declare, plus v1.19's drawing-quality suites — fixture orientation, `flush` placement, the openings render pass, and `test/repair-coverage.test.ts`, whose postcondition is that every piece a lint pass flags gets a change entry or an `unresolved` entry, never nothing, plus v1.20's sheet-and-datum suites — `test/axes.test.ts` (GB/T numbering incl. the `I`/`O`/`Z` skip and the descending-`y` lettering), `test/sheet.test.ts` (the paper/scale size table, closed-form auto-fit, `W_SCALE_OVERFLOW`, and a pin that a plan with no `paper` is byte-identical) and `test/schedule.test.ts` (schedule rows equal `describe()`'s own areas, legend lists only what is drawn), plus v1.21's vertical suites — `test/levels.test.ts` (either/or level nesting, per-storey id scoping, one-building paper/scale) and `test/cli-levels.test.ts` (`<stem>.L<n>.<ext>` fan-out, `outputs[]`/`pages[]`, `--level` as a display filter that never moves an exit code), `test/vertical.test.ts` (registry dispatch for the three new elements, the drawn symbols, the obstruct-except-the-entry-edge nav-grid rule, same-id shaft identity in `describe().vertical`, upper-storey reachability ± its counterexample, `W_STAIR_UNMATCHED` ±, and cross-level `checkGraph`), and `test/nav-grid-scale.test.ts` (the grid-resolution formulas, large-plan bottleneck discrimination, and the threshold carve)) + offline authorability eval (26 briefs, judge v2, `npm run eval:ci`, in CI); typecheck (`noUncheckedIndexedAccess` on) + build + `npm run lint` (Biome) clean | — |
0 commit comments