docs(work): map testing and editor northstars
Add repo-local northstars and ready slices for testing strategy, LSP/editor completion, and hemplate highlighting boundaries.
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
---
|
||||
id: NS-0001
|
||||
type: northstar
|
||||
status: ready
|
||||
title: Testing strategy confidence ladder
|
||||
refs:
|
||||
- REQUIREMENTS.md
|
||||
- AGENTS.md
|
||||
- README.md
|
||||
- hemx-xtask/src/main.rs
|
||||
- hemx-test/src/lib.rs
|
||||
- examples/html_examples/README.md
|
||||
---
|
||||
|
||||
## Objective
|
||||
|
||||
Make hemx verification boring and reliable by keeping a documented confidence ladder from fast crate tests, through focused browser/runtime smoke, to the full `cargo run -p hemx-xtask -- test` authority. The outcome is not more test ceremony; it is clear proof selection for agents and contributors.
|
||||
|
||||
## Authority
|
||||
|
||||
- `AGENTS.md` and `README.md` define stable verification commands, focused browser smoke, full xtask authority, and the 10 minute local full-check budget.
|
||||
- `REQUIREMENTS.md` `test/001` through `test/017` constrain generated-resource assertions, examples, browser smoke, no `/tmp` scripts, no-reload interactions, tiers, shard expectations, and diagnostic quality.
|
||||
- `hemx-xtask/src/main.rs` owns repo-capped verification commands and `html-examples-smoke`.
|
||||
- `hemx-test/src/lib.rs` owns reusable test inspection helpers.
|
||||
|
||||
## Close when
|
||||
|
||||
- Fast, focused browser, and full verification tiers have ready slices with exact commands and ownership boundaries.
|
||||
- Browser/runtime confidence covers no-reload dynamic interactions, revealed fallback, interval/timing behavior, and generated target assertions.
|
||||
- Regression boundaries prefer generated-resource assertions and `hemx_test` helpers over raw ids or raw effect matching.
|
||||
- Requirement/test governance stays tied to redgate health/lint without turning lint cleanup into product work.
|
||||
|
||||
## Verification
|
||||
|
||||
- `work check`
|
||||
- `work list`
|
||||
- Later implementation slices choose the narrowest relevant command, then use `cargo run -p hemx-xtask -- test` when changing shared verification authority.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Do not add a parallel test runner outside `hemx-xtask`.
|
||||
- Do not replace meaningful behavior tests with mocks-only assertions.
|
||||
- Do not make redgate warnings the product outcome unless the slice explicitly owns requirement maintainability.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `cargo run -p hemx-xtask -- html-examples-smoke` is the focused browser proof for html_examples dynamic behavior.
|
||||
- `cargo run -p hemx-xtask -- test` is the full local authority wrapper.
|
||||
- `redgate health --strict` and `redgate lint` are governance proof commands.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
id: NS-0002
|
||||
type: northstar
|
||||
status: ready
|
||||
title: LSP and editor experience completion
|
||||
refs:
|
||||
- REQUIREMENTS.md
|
||||
- docs/editor-support.md
|
||||
- docs/diagnostics.md
|
||||
- docs/hemplate-syntax.md
|
||||
- hemx-lsp/src/main.rs
|
||||
- hemx-build/src/lib.rs
|
||||
---
|
||||
|
||||
## Objective
|
||||
|
||||
Complete the `.heml` editor experience around existing compiler/build authority: diagnostics parity, completion, hover, cross-file facts, and correct LSP protocol behavior without inventing a second template language or editor framework.
|
||||
|
||||
## Authority
|
||||
|
||||
- `docs/editor-support.md` says `.heml` authoring should feel like HTML first and layer hemx diagnostics/completions/hover on top.
|
||||
- `docs/hemplate-syntax.md` is the stable syntax surface; LSP must not invent Vue/Handlebars-like syntax.
|
||||
- `docs/diagnostics.md` keeps editor overlays subordinate to compiler/build diagnostics.
|
||||
- `REQUIREMENTS.md` `diagnostics/004` through `diagnostics/008` and `check/001`/`check/003` constrain editor overlays, spans, completion, hover, and build-visible validation.
|
||||
- `hemx-lsp/src/main.rs` currently owns the CLI/LSP implementation surface.
|
||||
|
||||
## Close when
|
||||
|
||||
- Diagnostics parity slices prove LSP-published diagnostics match `hemx-build` CLI diagnostics for open/save/file paths.
|
||||
- Completion slices cover hemplate directives, `data-hemx-*` attributes, and context-sensitive generated facts without requiring external editor state.
|
||||
- Hover slices explain real hemplate syntax and hemx attributes from docs authority.
|
||||
- Cross-file fact slices describe what must fail at `cargo check` and what can remain editor-only.
|
||||
- LSP protocol slices cover initialize, sync, completion, hover, diagnostics clearing, and error responses with tests.
|
||||
|
||||
## Verification
|
||||
|
||||
- `work check`
|
||||
- `work list`
|
||||
- Later implementation slices should prefer focused `cargo test -p hemx-lsp`/integration tests, then `cargo check --workspace` or `cargo run -p hemx-xtask -- test` when build integration changes.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Do not build a custom editor framework, formatter, Rust type system, selector model, or second `.heml` parser.
|
||||
- Do not make VS Code/Cursor/Neovim provider behavior the source of truth; provider glue stays downstream of LSP/build facts.
|
||||
- Do not add external publishing/signing flows without explicit authority.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `hemx-lsp/src/main.rs` already exposes diagnostics, completion, and hover entry points.
|
||||
- `docs/editor-support.md` and `docs/diagnostics.md` define the editor/build boundary.
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
id: NS-0003
|
||||
type: northstar
|
||||
status: ready
|
||||
title: Hemplate highlighting and editor grammar boundary
|
||||
refs:
|
||||
- docs/editor-support.md
|
||||
- docs/hemplate-syntax.md
|
||||
- REQUIREMENTS.md
|
||||
- README.md
|
||||
---
|
||||
|
||||
## Objective
|
||||
|
||||
Make `.heml` highlighting predictable in editors by defining the repo-owned highlighting boundary: HTML/tree-sitter remains the base, hemplate overlays cover only the documented syntax facts, and diagnostics/completion stay owned by `hemx-build`/`hemx-lsp`.
|
||||
|
||||
## Authority
|
||||
|
||||
- `docs/editor-support.md` says `.heml` should keep normal HTML highlighting and layer hemx-specific editor support on top.
|
||||
- `docs/hemplate-syntax.md` defines escaped/trusted text, dynamic attributes, control flow, generated hemx targets, and boundaries.
|
||||
- `REQUIREMENTS.md` `diagnostics/004` through `diagnostics/008` require optional overlays to share authority with `hemx-build` and avoid a second template language or custom editor framework.
|
||||
|
||||
## Close when
|
||||
|
||||
- Highlighting ownership is explicit: repo-owned fixtures/queries can cover documented hemplate tokens, while external editor distribution remains a separate slice or blocker.
|
||||
- Tree-sitter work is bounded to syntax highlighting/injection facts and never owns diagnostics, completion, formatting, Rust type checking, or template validation.
|
||||
- Ready slices distinguish repo-testable grammar/query behavior from editor packaging/publishing work that may require external authority.
|
||||
|
||||
## Verification
|
||||
|
||||
- `work check`
|
||||
- `work list`
|
||||
- Later implementation slices should use repo-owned fixture/query tests where available; provider-specific visual/manual checks must name the editor and blocker.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Do not create a second `.heml` parser for hemx-build.
|
||||
- Do not make highlighting responsible for compiler diagnostics, completion, hover, formatting, or generated Rust facts.
|
||||
- Do not publish editor extensions or tree-sitter packages without explicit release authority.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Current docs already frame `.heml` as HTML first with a small hemplate overlay.
|
||||
- No current repo authority grants external package publishing; that is represented as a separate blocked/future slice rather than assumed.
|
||||
Reference in New Issue
Block a user