Skip to content

Conversation

@m0n0x41d
Copy link
Owner

quint-code 4.1.0: Better Linking, Smarter Queries

This release focuses on making the knowledge graph actually useful.

DRR Linking

When you finalize a decision with quint_decide, it now tracks what you picked and what you rejected. Pass rejected_ids alongside winner_id, and the system creates proper graph relations. Six months later, you can ask "what alternatives did we consider for this?" and get a real answer.

Audit Tree Shows the Full Picture

quint_audit_tree now displays memberOf relations — the competing alternatives grouped under a decision context. Previously these links existed in the database but were invisible. Now you see the complete structure.

Context Formatting

quint_record_context stopped producing wall-of-text markdown. Vocabulary entries render as proper definition lists, invariants as numbered items. Small thing, but readable docs matter.

Smarter /q-query

Merged /q-audit into /q-query. One command now searches the knowledge base AND shows R_eff scores with dependency trees. Fewer commands, same functionality.

Better Tool Descriptions

Rewrote quint_propose parameter descriptions to explain when to use depends_on vs decision_context. Added a linking checklist to the hypothesis phase. The agent should now actually create proper relationships instead of isolated nodes.

m0n0x41d and others added 28 commits December 19, 2025 14:54
… it is just a toggle for temporarry thinking budget bumping
…CP tools

This release enables CGO-free cross-compilation, adds type-safe database
operations, and exposes computed assurance data via new MCP tools.

### SQLite Driver Migration
- Replace mattn/go-sqlite3 (CGO) with modernc.org/sqlite (pure Go)
- CGO_ENABLED=0 builds now work for all platforms
- Cross-compilation verified: linux/amd64, linux/arm64, darwin/*, windows/amd64

### sqlc Integration
- Add schema.sql and query.sql for sqlc code generation
- Generate type-safe models and query functions
- Create db/store.go wrapper for clean API with schema bootstrap
- Add comprehensive test suite (db/store_test.go)

### New MCP Tools for Trust Calculus (B.3)
- quint_audit_tree: Visualize assurance tree with R scores and CL penalties
- quint_calculate_r: Compute R_eff with detailed breakdown (WLNK, decay)
- quint_check_decay: Identify holons with expired evidence

### Updated FPF Commands
- /q4-audit: Now calls quint_calculate_r and quint_audit_tree
- /q5-decide: Uses quint_calculate_r for final R_eff comparison
- /q-status: Proactively checks for expired evidence
- /q-decay: Uses quint_check_decay for epistemic debt detection
Phase 1 (S4): Parent ID chain for L0→L1→L2 tracking
- Added parent_id FK to holons table
- New queries: GetHolonsByParent, GetHolonLineage

Phase 2 (S2): Derived phase from DB state
- DerivePhase() computes phase from holons.layer
- Prevents state.json manipulation attacks

Phase 3 (E5): Audit logging
- New audit_log table tracking MCP tool invocations
- Instrumented propose/verify/decide/move tools

Phase 4 (S5): Self-healing signed projections
- content_hash in YAML frontmatter for tampering detection
- Auto-regenerate from DB when tampering detected

Phase 5 (E3+E4): Tool preconditions
- Validate inputs before tool execution
- Block invalid calls with actionable suggestions

Also:
- Proper migration system with schema_version tracking
- DRR holon creation in FinalizeDecision
All command prompts (q0-q5) now include enforcement contracts:
- YAML frontmatter with pre/post/invariant/required_tools
- RFC 2119 bindings (MUST, MUST NOT, SHALL)
- "Invalid Behaviors" section for explicit protocol violations
- "Checkpoint" verification checklist before phase transitions
- Success/failure path examples for few-shot learning
- "State machine executor" persona to reduce AI improvisation

Defense in depth: soft gate (prompts) + hard gate (preconditions).
Changed from DRR-{unix_timestamp}-slug.md to DRR-{YYYY-MM-DD}-slug.md
Also changed frontmatter field from 'timestamp' to 'created' with RFC3339 format
- New .github/workflows/ci.yml triggers on PRs to main and dev
- Runs tests with race detector and coverage
- Runs golangci-lint for code quality
- Verifies build and dist/ sync
- Added .golangci.yml config
- Fixed lint issues: errcheck, staticcheck, unused code, formatting
Pre-commit hooks (two options):
- .pre-commit-config.yaml for pre-commit tool users
- .githooks/pre-commit for simple git-native hooks

Checks performed:
- Go: gofmt, goimports, build, test, golangci-lint
- General: trailing whitespace, EOF, yaml, large files, merge conflicts, private keys
- Project: dist/ sync with src/commands/

Setup: ./scripts/setup-hooks.sh (or --precommit for pre-commit tool)
- quint-code version: shows version, commit, build date
- quint-code --version: shows version (short form)
- Version injected via ldflags at build time
- Updated release workflow to inject version info
Evidence was stored with NULL valid_until, making /q-decay always report
no expired evidence. ManageEvidence now sets a default 90-day validity
period when validUntil is empty.
- TestPropose_WithDecisionContext: verifies MemberOf relation creation
- TestPropose_WithDependsOn: verifies ComponentOf relation creation
- TestPropose_CycleDetection: verifies cycle prevention
- TestPropose_InvalidDependency: verifies graceful handling of missing deps
- TestPropose_KindDeterminesRelation: verifies system→componentOf, episteme→constituentOf
- TestWLNK_MemberOf_NoPropagation: verifies MemberOf doesn't affect R_eff
- Add depends_on, decision_context, and dependency_cl parameters to quint_propose
- Create ComponentOf (system) or ConstituentOf (episteme) relations based on kind
- Create MemberOf relation for grouping alternatives under a decision context
- Add SQL queries: CreateRelation, GetDependencies, GetDependents, GetCollectionMembers
- Add indexes for WLNK traversal (idx_relations_target, idx_relations_source)
- Document structural relations (B.1.1) in CLAUDE.md
Signed-off-by: Boris Bliznioukov <blib@mail.com>
Fix: Standardize Go module import paths
- DRR Linking: quint_decide now accepts rejected_ids parameter
  - Creates 'selects' relation: DRR → winner
  - Creates 'rejects' relations: DRR → rejected alternatives

- Context Markdown: quint_record_context normalizes formatting
  - Vocabulary as definition list
  - Invariants as numbered list with line breaks

- Audit Tree: Now displays memberOf groupings
  - Shows decision alternatives under [members] section
  - Exposes GetCollectionMembers in store.go

- Tool Descriptions: Improved quint_propose parameter docs
  - depends_on: Explains WLNK impact
  - decision_context: Explains grouping purpose
  - q1-hypothesize.md: Added Linking Checklist
- Remove standalone /q-audit utility command
- Enhance /q-query to show R_eff and dependency trees
- /q4-audit (FPF phase) unchanged
@m0n0x41d m0n0x41d merged commit e0a81da into main Dec 21, 2025
6 checks passed
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.

3 participants