Skip to content

phase2-onboarding: adopt Phase 0 contract for tree-sitter-m-vscode#3

Merged
rafael5 merged 1 commit into
mainfrom
phase2-onboarding
May 11, 2026
Merged

phase2-onboarding: adopt Phase 0 contract for tree-sitter-m-vscode#3
rafael5 merged 1 commit into
mainfrom
phase2-onboarding

Conversation

@rafael5
Copy link
Copy Markdown
Collaborator

@rafael5 rafael5 commented May 11, 2026

Summary

Tier-3 onboarding per AI-discoverability-plan.md §3.4 and phase1-plan.md §9. Third and final tier-3 repo to ship the Phase-0 contract — completes Phase 2 onboarding after m-modern-corpus PR #2, tree-sitter-m PR #4, and m-test-engine PR #2.

What landed

Surface Contents
AGENTS.md Renamed from CLAUDE.md (existing 68-line content preserved verbatim above); CLAUDE.md now a symlink to AGENTS.md. Five Phase-0 sections appended (Setup / Test / Build / Verify / Guardrails).
dist/repo.meta.json Phase-0 contract. Exposes extension_info (dist/extension-info.json) + package_json + language_configuration. Consumes tool:tree-sitter-m and tool:m-cli. License MIT.
dist/extension-info.json Hand-authored, deterministic distillation of package.json contributes.*: 4 commands, 4 settings (m-cli.enabled / path / args / trace.server), 1 language (m with .m / .mac / .int extensions), 1 grammar (source.msyntaxes/m.tmLanguage.json), marketplace id rafael5.tree-sitter-m-vscode. Sorted keys, 2-space indent.
tools/check-manifest.py Stdlib-only validator — copied verbatim from tree-sitter-m, same pattern as m-test-engine.
Makefile First Makefile for this repo. Three targets: manifest (informational no-op — extension-info.json is hand-authored), check-manifest, check-docs-prose.
.github/workflows/ci.yml First CI workflow for this repo. Phase-0 gates (check-manifest, check-docs-prose) run before npm ci / npm run lint / npm run compile, so a broken manifest fails fast without spinning up Node.

Verification (all green)

  • make manifest — informational pointer
  • make check-manifest — manifest valid + all 3 exposes.* paths present
  • make check-docs-prosedocs/ (lsp-setup.md) is prose-only
  • Canonical Track-A validator (.github/profile/build/validate-repo-meta.py) — OK: dist/repo.meta.json

Design notes

  • Hand-authored extension-info.json (not generated). package.json contributes.* already exists; a generator would be a parse + transform with no real degrees of freedom. AGENTS.md § Guardrails captures the "mirror the change into extension-info.json in the same commit" rule for reviewer enforcement.
  • dist/ is already tracked. This repo's .gitignore deliberately omits the dist/ ignore (the comment notes the .wasm grammar is committed so users can clone-and-package without docker). The gitignore bug that bit tree-sitter-m's ade59d6 didn't recur here — no exception was needed.
  • Manifest gate before npm ci. Cheaper to fail in 100ms on malformed JSON than to wait for npm install + tsc. The CI ordering reflects this.

Phase 2 progress: 3 of 3 tier-3 repos onboarded with this PR.

Repo Status
m-modern-corpus Onboarded
tree-sitter-m Onboarded
m-test-engine Onboarded
tree-sitter-m-vscode This PR

Phase 1 hook

Once .github ships build-catalog.py (Phase-1 Track B) and adds tree-sitter-m-vscode to its tier-3 list, this repo's manifest will be picked up by the org catalog automatically — completing the parent plan's Phase 2 exit criterion ("all tier-3 repos appear in generated tools.json with verified_on dates within 30 days").

Test plan

  • All local gates green
  • Canonical Track-A validator green
  • CI green on this PR (manifest + docs-prose gates run before npm install, then npm ci + npm run lint + npm run compile)

Tier-3 entry to the org AI-discoverability catalog. Third and final
tier-3 repo to ship the Phase-0 contract, completing Phase 2 onboarding
after m-modern-corpus PR #2, tree-sitter-m PR #4, and m-test-engine PR
#2.

Changes:
- Rename CLAUDE.md to AGENTS.md; symlink CLAUDE.md -> AGENTS.md
- Append five Phase-0 required sections (Setup / Test / Build / Verify
  / Guardrails); existing CLAUDE.md content preserved verbatim above
- Add dist/repo.meta.json (Phase-0 manifest) exposing extension_info,
  package_json, language_configuration
- Add dist/extension-info.json — hand-authored, deterministic
  distillation of package.json contributes.* (commands, settings,
  languages, grammars) for the catalog
- Add tools/check-manifest.py — stdlib-only, repo-agnostic; same
  script as tree-sitter-m and m-test-engine
- Add Makefile with manifest / check-manifest / check-docs-prose
  targets
- Add first CI workflow (.github/workflows/ci.yml) — Phase-0 gates
  run before the npm install so a broken manifest fails fast

dist/ is already tracked in this repo (the .gitignore explicitly notes
this — the .wasm grammar is committed so users can clone-and-package
without docker), so no gitignore exception was needed.
@rafael5 rafael5 merged commit 1251518 into main May 11, 2026
1 check passed
@rafael5 rafael5 deleted the phase2-onboarding branch May 11, 2026 03:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant