Skip to content

feat(mvp2): catalog rules, domain resolve, validate pipeline - #71

Merged
Alexendros merged 1 commit into
mainfrom
feat/mvp2-rules-resolver-validation
Oct 12, 2026
Merged

Alexendros merged 1 commit into
mainfrom
feat/mvp2-rules-resolver-validation

Conversation

@Alexendros

@Alexendros Alexendros commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Completes the executable operator AST (any/ne/in); rejects target_is and unknown ops with AM-RULE-009; normalizes count_gt only.
  • Loads Rule sheets from catalog.rules via the canonical pack; empty catalog rules invent nothing.
  • Resolves against domain provides/requires with SHA-256 digests (FNV removed).
  • Aligns validateDraft with resolve/buildManifest blocking.
  • Scope/docs/traceability for MVP-2; go/no-go reevaluated ahead of implementation-baseline-mvp2.

Test plan

  • cargo test --workspace --locked
  • cargo clippy --workspace --locked --all-targets -- -D warnings
  • python3 tools/traceability_matrix.py / validate_traceability.py
  • pnpm check
  • CI green on PR

Note

Medium Risk
Changes validation and manifest-blocking behavior, resolution digest algorithm (breaking for any consumer of old FNV digests), and rule evaluation semantics tied to catalog rules references.

Overview
Delivers MVP-2: catalog-driven rules, domain resolution, and validation aligned with manifest build.

Rules (archmaker-rules) adds JSON parsing (parse.rs, canonical-rules.json) with load_rules_by_ids; expands the executable AST (ne, in, any); normalizes legacy count_gt; rejects unknown operators and deferred target_is with AM-RULE-009. Hard-coded canonical_rules() stays as a parity oracle; rule conditions now use fully qualified domain step/option IDs.

Core loads active_rules only from catalog.rules (empty/missing → no silent defaults). Fixtures gain provides and rules ID lists.

Resolution (archmaker-resolution) takes an explicit rules slice, applies RULE-DM-001 from that set (with flexible step/option ID matching), and replaces FNV-1a with SHA-256 canonical digests (archmaker:resolution:v1), with a core parity debug_assert.

validateDraft now runs the same resolve_internal path as resolve/buildManifest and blocks on conflicts as well as blocking diagnostics.

Governance/docs: MVP-2 scope, backlog/issues, go-no-go toward implementation-baseline-mvp2; .gitignore adds .cargo-target/.

Reviewed by Cursor Bugbot for commit 6c2a7a3. Configure here.

…line

Load Rule sheets from catalog.rules, complete the executable operator AST
(any/ne/in), resolve against domain provides/requires with canonical SHA-256
digests, and align validateDraft blocking with buildManifest.
@cursor

cursor Bot commented Oct 12, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: dfb28d8c-1b53-4476-9830-203f1823fbe3)

@Alexendros
Alexendros merged commit 7aa1831 into main Oct 12, 2026
22 checks passed
@Alexendros
Alexendros deleted the feat/mvp2-rules-resolver-validation branch October 12, 2026 17:48
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