the-mindscape-of-bro-tsong/docs/DECISIONS.md

14 KiB
Raw Blame History

Decision Log

Decision 001: File-first architecture

Status: Accepted

Reason:

The MVP should remain simple, local, transparent, and easy to inspect.

A database is unnecessary before the model card schema and extraction protocol are stable.

Decision 002: JSON for machine-readable model data

Status: Accepted

Reason:

JSON is easy to validate with JSON Schema and suitable for later integration into scripts, selectors, or applications.

Decision 003: Markdown for human-readable model cards

Status: Accepted

Reason:

Markdown is easier for the project owner to read, edit, and review.

Decision 004: QPI and Intellectual Archaeology as first sample models

Status: Accepted

Reason:

QPI represents a routing model.

Intellectual Archaeology represents a deep modeling model.

Together they test two different kinds of model structures.

Decision 005: Rule-based selector in v0.1

Status: Accepted

Reason:

The first selector should validate data structure and model routing logic without relying on LLM calls.

Decision 006: Use product root instead of a nested phase directory

Status: Accepted

Reason:

the-mindscape-of-bro-tsong is the product and system boundary.

model_library_mvp is the current phase and subsystem goal, not a separate root project.

The repository should not start as the-mindscape-of-bro-tsong/model_library_mvp/ because that would add unnecessary root-vs-subproject ambiguity before the product needs a monorepo layout.

Decision 007: Use supplier request channels for CCPE and skills-vault

Status: Accepted

Reason:

This repository is a product and application workspace. It should not silently absorb expert-agent specification work or reusable automation Skill source work.

Requests for agents, runtimes, model governance, invocation protocols, evaluation rules, and integration registrations should be recorded under requirements/ccpe/.

Requests for deterministic reusable automation tools and installable Skills should be recorded under requirements/skills-vault/.

If a supplier capability blocks model extraction, the dependent extraction step should pause unless the project owner explicitly says to solve the need locally.

Decision 008: Third-party frameworks belong to product implementation, not CCPE or skills-vault

Status: Accepted

Reason:

Frameworks such as CrewAI and LangGraph may be useful later for implementing product behavior. The concrete application adapters, state, deployment, and product runtime belong in this repository.

CCPE may define the agent contract, runtime governance, authority, evaluation, and integration registration.

skills-vault may provide reusable deterministic helper Skills discovered during implementation.

Decision 009: Use intellectual_archaeology as the machine model ID

Status: Accepted

Reason:

The source article names the model “思想考古学”Intellectual Archaeology.

The machine-readable ID should use the stable English snake_case form intellectual_archaeology, while the human-facing model name remains Chinese.

Decision 010: Keep field names English and field content Chinese

Status: Accepted

Reason:

English field names make JSON easier to validate and integrate.

Chinese field values preserve source-language meaning and avoid translation drift during model extraction.

Decision 011: GPT plans must be localized before implementation

Status: Accepted

Reason:

GPT planning documents may not know the current local repository state, existing constraints, missing contracts, or prior owner decisions.

Codex must first convert each GPT plan into local rules, schemas, indexes, workflow, tooling expectations, and validation gates before implementing content.

Content extraction or content repair must not begin from a GPT plan until the local foundation has been reviewed, unless the project owner explicitly overrides the gate.

Decision 012: Maintain indexes by script-backed synchronization

Status: Accepted

Reason:

models/model_index.json is the machine discovery entrypoint, and cards/card_index.md is the human review entrypoint.

They should follow source assets instead of becoming separate hand-maintained content sources.

Every asset change must incrementally synchronize the indexes, and handoff or release points must run a full rebuild or consistency check.

The current rule is:

incremental update on every model/card/source/test change
+
full rebuild or full reconciliation at release, handoff, schema migration, batch expansion, or validation drift

Model status remains an owner / ChatGPT / CCRA decision; validation and index rebuilds must not upgrade draft to a stronger state automatically.

Decision 013: Archive CCRA review bundles by round

Status: Accepted

Reason:

The first compressed CCRA review bundle was generated as flat files under ccra_review_bundle/. That works for a single handoff, but it becomes ambiguous once later rounds produce new 00_OPEN_THIS_FIRST_CCRA_REVIEW_BRIEF.md, command logs, diffs, and raw changed files.

ccra_review_bundle/ is now the archive root. Each review round must live in a dated subdirectory:

ccra_review_bundle/round-NN_YYYY-MM-DD_topic/

This keeps second-round and third-round materials comparable without overwriting prior evidence. Temporary review bundles remain session evidence and should not be copied into knowledge_assets/.

Round 03.1 added two bundle hygiene rules:

  • optional_raw_changed_files_<round-version>.zip must preserve source-relative paths. Do not create flat archives that can collide on names such as README.md.
  • knowledge_assets/ is excluded from review bundles by default because the project owner manually syncs stable long-term knowledge assets into GPT knowledge storage. Include it only when the current review explicitly targets the knowledge asset itself.

Round 03.2 added one ChatGPT upload hygiene rule:

  • Every file intended for GPT / CCRA upload inside a review bundle must include the round version in the filename, such as _03.2 or 03.2, because uploading same-named files from multiple rounds in one Web ChatGPT conversation can cause file-reading ambiguity. This applies especially to raw changed-file zip archives, e.g. optional_raw_changed_files_03.2.zip.
  • The version suffix belongs to the bundle file names. Zip entries should still preserve source-relative repository paths so reviewers can inspect actual changed files without flattening path context.

Decision 014: Treat explicit model refusal as model-level hard exclusion

Status: Accepted

Reason:

Round 03.1 fixed QPI default over-selection, but GPT review found that explicit Intellectual Archaeology refusal phrases such as 先不要思想考古 could still lose to positive IA signals and QPI-completed bonuses.

A user instruction that names a model and refuses it should not be represented as a normal score penalty. It must hard-exclude that model unless a later owner-approved rule defines an explicit reversal phrase.

The current Round 03.2 implementation keeps this scoped:

  • It rejects only the explicitly refused model.
  • It does not create a global no-call.
  • It does not add an LLM selector, RAG, database, service, frontend, backend, or third model.
  • It preserves QPI explicit-analysis override, but QPI selection does not re-enable IA when IA is explicitly refused.
  • Generic bare QPI gate words such as 如何 and 判断 are removed in favor of compound problem-definition phrases.

Decision 015: Treat depth-limiting QPI requests as scoped analysis, not global no-call

Status: Accepted

Reason:

Round 03.2 review found that global hard no-call phrases such as 不要展开 and 不要深入分析 could incorrectly block QPI when the user also asked for a limited QPI action such as 只做 QPI, 只做问题定性, or 只判断主导稀缺.

The correct interpretation is scoped depth control:

  • 不要展开 or 不要深入分析 alone remains a no-call / low-depth signal.
  • When paired with explicit QPI-limited intent, it means do not enter deeper models such as Intellectual Archaeology.
  • QPI may still be selected for problem definition, problem-type judgment, or dominant-scarcity judgment.
  • IA remains rejected through model-level hard exclusion.

This remains a selector precedence rule only. It does not add a new model, lifecycle upgrade, LLM selector, RAG, database, service, frontend, backend, user system, or Round 04 blind-test behavior.

Decision 016: Close Round 03 after the Round 03.2a pass decision

Status: Accepted

Reason:

The Round 03.2a review accepted the depth-limiting QPI override patch and confirmed that Round 03 can close.

Closure statement:

  • Round 03 is closed.
  • QPI and Intellectual Archaeology remain draft / B / pending.
  • QPI is accepted as a draft-callable routing asset at report level only; this does not change JSON model lifecycle status.
  • Selector v0.2 passes no-call, calibration smoke, model-level exclusion, QPI-before-IA, and depth-limiting override gates.
  • Round 04 blind input routing evaluation is the next candidate phase, but it is not started by this closure.

Decision 017: Treat Round 04.1 as selector rule patch verification, not a second blind test

Status: Accepted

Reason:

Round 04 first-run blind routing evaluation found review-approved selector failures:

  • R04-BI-002: translation task over-selected QPI because payload text contained 模型.
  • R04-BI-024: explicit 不要进入思想考古 did not hard-exclude Intellectual Archaeology.
  • R04-BI-035 / R04-BI-036: depth-limiting phrases blocked lightweight QPI scarcity judgment.

Round 04.1 therefore patches selector rules and verifies the patch against frozen Round 04 inputs. It is not a second blind test because expected labels now exist for the four owner / GPT reviewed target cases.

The patch remains scoped:

  • It adds translation / direct transformation no-call coverage.
  • It separates task instruction from payload for no-call matching before payload complexity scoring.
  • It expands IA model-level hard exclusion variants.
  • It expands depth-limiting QPI override phrases for 主导稀缺 and 缺信息 / 缺路径 / 缺共识.
  • It does not add a new model, lifecycle upgrade, LLM selector, RAG, database, service, frontend, backend, user system, or QA product.

QPI and Intellectual Archaeology remain draft / B / pending.

Closeout:

  • GPT review accepted Round 04.1 and did not request a 04.2 selector patch.
  • R04-BI-022 is documented as an accepted collateral behavior change: it moved from no-call to lightweight QPI after the depth-limiting override patch.
  • This is not a new failure because the user rejects deeper IA-style expansion but asks for dominant-scarcity judgment.
  • IA remains rejected for R04-BI-022.
  • R04-BI-022 is added to selector regression as a QPI gate / IA anti-recall trap.
  • Closing Round 04.1 does not upgrade either model lifecycle status.

Decision 018: Keep Local CCRA review runs inside this project

Status: Accepted

Reason:

The first Local CCRA version serves only the-mindscape-of-bro-tsong.

Creating a separate reviewer project would add synchronization cost before there is a cross-project review workload. The useful separation is runtime isolation, not directory isolation.

This repository therefore records Local CCRA review runs under:

local_ccra_reviews/<public-round>/<local-pass>/

The public round label follows Owner / Web CCRA round versions such as round-05, round-04.1, or round-03.2a. The local pass number records repeated internal review passes, such as 01/ and 02/.

Local CCRA output is formal local first review, but it does not replace Owner judgment or Web CCRA judgment at key product and lifecycle gates.

Formal Web CCRA bundles under ccra_review_bundle/ exclude 04_LOCAL_CCRA_REVIEW_REPORT.md by default. The local report is included only when the owner explicitly asks Web CCRA to review local findings.

Decision 019: Route Local CCRA Agent Runtime and companion capability classification to CCPE first

Status: Accepted

Reason:

Local CCRA requires a real child review session, runtime session continuation, a reviewer role contract, review rubric, lifecycle guard policy, and file-first invocation protocol.

These are CCPE responsibilities, not product-local implementation details and not automatically skills-vault automation.

This repository will request a ccra-local-reviewer Agent Spec and Runtime protocol from ccpe-system. Companion capabilities such as routing diff audit, review bundle audit, lifecycle guard scan, round initialization context building, and regression gate running should be classified by CCPE first.

Only capabilities that are abstracted into reusable deterministic operations should be routed to skills-vault. Reusable Skill names should describe the generic operation, as with bundle-zip, rather than this project's review context.

Decision 020: Treat Local CCRA v0.1.1 as usable for formal local first review with non-blocking Patch 2 hardening

Status: Accepted

Reason:

Round 04 Local CCRA pilot-02 tested CCPE Patch 1 with a real child session and the same historical Round 04 materials.

The same child session completed both required turns:

  • review_turn: produced local_ccra_reviews/round-04/pilot-02/04_LOCAL_CCRA_REVIEW_REPORT.md.
  • planning_turn: produced local_ccra_reviews/round-04/pilot-02/next-review-requirements.md.

The three-way comparison against Web CCRA baseline and pilot-01 showed that Patch 1 fixed the main Local CCRA gap: the reviewer now combines Web-style issue mechanism diagnosis with local full-file audit.

Decision:

  • Local CCRA v0.1.1 can be used as this project's formal local first-review lane after Owner and Web CCRA define the next round's work.
  • It does not replace Owner judgment, Web CCRA final review, or lifecycle authority.
  • Patch 2 is still needed as runtime/helper hardening, but it is non-blocking if Patch 1 behavior remains intact.
  • A third historical pilot is not required unless CCPE changes mechanism diagnosis, patch scope judgment, same-child-session continuation, mandatory knowledge-base use, or authority boundaries.
  • Full Round-level automation is a separate workflow/orchestrator design problem and should not be mixed into the ccra-local-reviewer reviewer contract.

Patch 2 should focus on:

  • CCRA-aware review bundle audit profile.
  • Explicit gate-runner dry_run / run / owner_waived / not_applicable policy.
  • Mandatory routing behavior diff when before/after patch evidence exists.
  • Scoped lifecycle/status scan and triage.
  • Short Owner-facing returned-output.md summary.