Skip to content

[bug] scan red on master: ledger.t27 tests carry 9 developer home paths (from #10646) #10653

Closed

Description

@gHashTag

Summary

specs/tools/t27o/ledger.t27, merged with #10646 (lane X of #10522, mine), carries 9 hard-coded developer home paths (/Users/playom/trios, ...) in its cache_path / repo_is_here tests. tools/check_devhome_paths.py (the scan check) now reports FAIL new specs/tools/t27o/ledger.t27 (9 occurrence(s)), so every pull request after it shows scan red.

Expected vs actual

Expected: no developer home path in the tree outside the baseline. Actual: 9 new occurrences, test literals only.

Fix

The rule under test reads only the last path component, so the literals become a neutral prefix (/srv/checkouts/trios, ...) with every expected value unchanged. Re-seal; regenerate gen/rust/tools/t27o/ledger.rs (tests are not lowered, so it should not change).

Boundary

  • May touch: specs/tools/t27o/ledger.t27, .trinity/seals/t27o_T27oLedger.json, gen/rust/tools/t27o/ledger.rs if regeneration changes it.

Links

#10522, #10638, #10646.

User Scenarios

  • Given specs/tools/t27o/ledger.t27 contains 9 hard-coded developer home paths in its cache_path / repo_is_here test literals, when tools/check_devhome_paths.py runs, then it reports FAIL new specs/tools/t27o/ledger.t27 (9 occurrence(s)) and the scan check fails.
  • Given the developer home paths are replaced with neutral prefixes (e.g., /srv/checkouts/trios) that preserve the last path component, when the scan runs again, then it reports zero new occurrences and the scan check passes.
  • Given the spec is updated and re-sealed, when the Rust code is regenerated via t27c, then gen/rust/tools/t27o/ledger.rs is updated accordingly (or unchanged if tests are not lowered) and all ledger tests still pass.

Requirements

  • FR-001: The specs/tools/t27o/ledger.t27 file MUST replace all 9 hard-coded developer home paths with neutral prefixes (e.g., /srv/checkouts/trios) while preserving the last path component used by the rule under test.
  • FR-002: The seal file .trinity/seals/t27o_T27oLedger.json MUST be regenerated to match the updated spec.
  • FR-003: The generated Rust file gen/rust/tools/t27o/ledger.rs MUST be regenerated if the spec changes affect lowering; otherwise it MUST remain unchanged.
  • FR-004: The tools/check_devhome_paths.py scan MUST report zero new developer home path occurrences in specs/tools/t27o/ledger.t27.

Success Criteria

  • python tools/check_devhome_paths.py exits with exit 0 and reports 0 new occurrences in specs/tools/t27o/ledger.t27.
  • t27c specs/tools/t27o/ledger.t27 exits with exit 0 and regenerates .trinity/seals/t27o_T27oLedger.json and gen/rust/tools/t27o/ledger.rs.
  • cargo test -p t27o_ledger (or the project's ledger test command) exits with exit 0 and all tests pass.

Activity

  1. added
    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it
    on Oct 18, 2026
  2. github-actions commented on Oct 18, 2026

    @github-actions
    Contributor

    Closed by the issue-shape gate (specs/policy/issue_shape.t27, #7498): an issue must have the template's sections. Edit the body; an edit that passes reopens it.

    • missing: ## User Scenarios -- at least one Given/When/Then scenario
    • missing: ## Requirements -- numbered obligations, FR-001: ... MUST ...
    • missing: ## Success Criteria -- an outcome a machine can settle: a number with a unit, a backticked file, exit 0, or a backticked command
  3. added a commit that references this issue on Oct 18, 2026
    382a5ba
  4. removed
    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it
    on Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions