Skip to content

spec(t27f): topic-to-value engine and /t27f skill, phase 1 slice (Closes #9951) - #9952

Merged
gHashTag merged 1 commit into
masterfrom
t27f/topic-engine-9951
Oct 17, 2026
Merged

gHashTag merged 1 commit into
masterfrom
t27f/topic-engine-9951

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #9951
Refs gHashTag/trinity#1677 (MEGA-EPIC: Universal T27F Topic-to-Value Engine), gHashTag/trinity#1648 (EPIC: T27F)

What

The MVP of the T27F phase 1 slice, usable from Claude Code through the t27 MCP server that is already installed:

  • specs/t27f/topic_engine.t27 (module T27fTopicEngine) holds the rules:

    • the 3 lenses x 9 steps = 27 lesson shape;
    • intake and gap rules: a lesson with no source is a GAP, never filler;
    • keyword routing to one of five domains;
    • a cap of 3 active Bees, never 27 agents;
    • evidence gates per stage and domain;
    • progression only after verification, with REWARD_IS_MONEY = false;
    • human approval for publish, send to client, payment and destructive actions.

    The header says which steps are deterministic and what the LLM writes.

  • .claude/skills/t27f/SKILL.md gives the order of operations. It reads the spec via t27_spec path=specs/t27f/topic_engine.t27 source=true and does not restate it.

  • specs/skills/t27-t27f.t27 is the skill card. specs/OWNERS.md gets a t27f/ row.

No foreign code: two .t27 files, one prose skill and one OWNERS line.

#1677 acceptance criteria covered by tests

Criterion Test
Two very different domains, same workflow demo_villa_sale_brief, demo_gf16_research_topic
Gaps shown, not hallucinated gaps_are_shown_not_filled
Only relevant Bees routing_picks_one_domain, dispatch_is_capped, invariant few_bees_not_twenty_seven
Progression only after verification progress_only_after_verification, engineering_practice_needs_a_test
No reward as money invariant reward_is_not_money
Approval gates on high-impact actions high_impact_actions_need_approval
Drafts / verified / published kept apart layers_stay_separate

Evidence (Railway lab, t27c 90fc25b, zig 0.16.0)

  • topic_engine.t27: 10/10 tests pass and 4 invariants are proved; 0 vacuous tests (76 runtime asserts executed).
  • t27-t27f.t27: 1/1 pass, 9 asserts.
  • Negative control: two one-token mutations (route tie > to >=, approval threshold >= to >) fail 2 tests.
  • gen-js and gen-c both succeed.

Not claimed

  • No runtime dispatches Bees from this spec yet.
  • Nothing publishes on its own.
  • No host imports a generated binding yet.
  • The MCP path works once the publish pipeline has carried the spec to t27.ai; until then the skill reads the local file and says so.

🤖 Generated with Claude Code

Add specs/t27f/topic_engine.t27 (module T27fTopicEngine), the rules of the
T27F phase 1 vertical slice: 3 lenses x 9 steps = 27 lessons, intake and
gap rules, keyword routing to one domain, a cap of 3 active Bees, evidence
gates per stage and domain, progression only after verification (never
money), and human approval for publish, send, payment and destructive
actions. Two demos run through the same functions: a villa-sale brief
(sales) and a GF16 research topic (research).

Add the Claude Code skill .claude/skills/t27f/SKILL.md, which reads the
spec through the t27 MCP server (t27_spec source=true) and applies it
step by step without restating it, plus its card specs/skills/t27-t27f.t27
and a t27f/ row in specs/OWNERS.md.

Lab (Railway, t27c 90fc25b, zig 0.16.0): test-report 10/10 pass,
4 invariants proved, 0 vacuous; skill card 1/1; gen-js and gen-c succeed.
Negative control: two one-token mutations (route tie, approval threshold)
fail 2 tests.

Closes #9951
Refs gHashTag/trinity#1677, gHashTag/trinity#1648

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) October 17, 2026 14:08
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-17 14:08:08 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 49
PRs with All Checks Green 1
READY 0
FAILING 49
PENDING 0
NO CHECKS YET 0

These columns do not partition: 0 + 49 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=e769ef021713 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 7181e6b into master Oct 17, 2026
26 of 29 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.

T27F: topic-to-value engine spec + /t27f Claude Code skill (phase 1 slice of trinity#1677)

1 participant