Identity Stabilization Closure
Last Updated: 2026-02-28
Owner: Core Runtime / Prompt System
Status: Executed (code + tests + docs)
Goal
Close the remaining Identity Pack stabilization items so identity behavior is deterministic across protocols, prompt/tool instructions stay consistent, and verification evidence is repeatable.
Scope Completed
1) Tool instruction consistency (web tools)
- Updated prompt wording to reference available listed web tools instead of hard-coding assumptions.
- Kept both
web_searchandweb_fetchas distinct capabilities. - Added bidirectional pairing in allowed-tool normalization:
- if
web_searchis listed, includeweb_fetch - if
web_fetchis listed, includeweb_search
- if
- Effective access controls and enablement checks still gate final exposure.
Files:
backend/src/config/prompts.jsonbackend/migrations/assets/base_tool_call_v2.txtbackend/src/services/tools/toolCompilation.service.tsbackend/src/services/aso/promptBuilder.service.ts
2) Identity continuity quality gate (pass/fail suite)
Expanded prompt identity regression tests to cover:
- Identity contract default inclusion
- Explicit identity-off behavior
- Tech default Chinatsu suppression
- Explicit Chinatsu anchor off behavior
- Private/system Chinatsu mention-rule behavior
- Cross-protocol expression mode consistency (
public,tech,neutral,private,system) - Explicit generic-self-reference opt-out behavior
File:
backend/src/tests/promptBuilder.identity.jest.test.ts
3) Protocol rollout flags for Chinatsu anchor policy
Added explicit policy flags in routing-scope migration so rollout is configuration-driven:
public_protocol_v1->identity:chinatsu_anchor_offtech_protocol_v1->identity:chinatsu_anchor_offneutral_protocol_v1->identity:chinatsu_anchor_offprivate_protocol_v1->identity:chinatsu_anchor_onsystem_protocol_v1->identity:chinatsu_anchor_on
File:
backend/migrations/20260301000080-tighten-protocol-prompt-modules-scope.js
4) Runtime observability for identity/module toggles
Added prompt-builder debug telemetry showing resolved module and identity toggles per turn, including protocol id and Chinatsu anchor decision.
File:
backend/src/services/aso/promptBuilder.service.ts
5) Documentation sync
Added Identity Pack v1 contract guidance to prompt docs and linked this closure doc from system standardization index.
Files:
aso-docs/02-CORE-SYSTEMS/Prompt-System/README.mdaso-docs/02-CORE-SYSTEMS/System-Standardization/README.md
Execution Evidence
Run focused checks from backend/:
npm run test -- src/tests/promptBuilder.identity.jest.test.ts
Expected:
- All tests pass
- New identity pass/fail gates are active
LangSmith Verification Batch (Baseline Procedure)
Use this fixed probe set after deployments and store prompt snapshots:
public_protocol_v1-> generic chat prompt; verify public expression rule and Chinatsu not force-mentioned.tech_protocol_v1-> technical task prompt; verify technical expression rule and Chinatsu anchor suppressed by default.neutral_protocol_v1-> lightweight prompt; verify neutral expression rule and no intimacy drift.private_protocol_v1-> relational/private prompt; verify private expression rule and private-context Chinatsu rule.system_protocol_v1-> architecture/meta prompt; verify system expression rule and private/system anchor policy.
For each snapshot, confirm:
=== PROTOCOL RULES ===block present=== RUNTIME DIRECTIVES ===block present- Identity Contract block present/absent per scope
- Tool list matches effective allowed tools for that turn
- No generic-assistant self-reference drift unless explicitly allowed by scope
Exit Criteria (Closure)
- [x] Prompt/tool consistency hardened
- [x] Identity continuity pass/fail tests added
- [x] Chinatsu anchor policy made protocol-configurable via scope flags
- [x] Runtime toggle diagnostics added
- [x] Docs synchronized with Identity Pack v1 contract