Skip to content

refactor(R1): retire eleven roots and bind Apps inspection - #459

Open
Dong1017 wants to merge 2 commits into
mainfrom
impl/r1-retirement-t379
Open

Dong1017 wants to merge 2 commits into
mainfrom
impl/r1-retirement-t379

Conversation

@Dong1017

@Dong1017 Dong1017 commented Nov 15, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Refs #412. R1 of the agreed C1 → C2 → R1 → A1 → A2 → M1 → R2 → R3 queue; Issue412 remains open for R2/R3.

  • Retire all eleven root modules: the seven Knowledge shells, evaluation, execution, reporting, and inspection, with no forwarding shells or module aliases. Migrate current CLI/arguments, tools, tests, and active documentation to canonical owners. CHANGELOG maps every retired import and explains external import/pickle impact; historical frozen evidence remains unchanged.
  • Bind host inspection at inferrsi.apps.inspection over the unchanged Infra facts API, retaining command/snapshot/repository-identity injection and failure behavior. apps.legacy.run.run_experiment resolves omitted execute/snapshot ports from its module at call time (defaults now None); this preserves the retired root entry's patchable binding and is explicitly documented.
  • Shrink the existing exact root inventory from 21 to 10; reject returning old files/imports and unexpected generated metadata. The final two-file root is not asserted early.
  • Reduce compatibility_pairs from nine to zero, archiving the original pair/routes records unchanged. The sole permanent neutral-leaf rule is exact infra.inspection → resources.repository_packs, binding only repository_pack through a plain top-level import, with negative controls. Root arguments.py has a separate temporary exact REPO_TYPES importer/blocker, due for removal in A1; it is not a compatibility pair or a permanent Apps allowance.
  • Maintain protected paths by removing only the three deleted root entries; canonical Knowledge protection and all model/effort/author/exception/threshold rules remain unchanged. No policy exception or admission relaxation is requested.

Independent validation

  • Reused the unchanged 10-vector immutable host-binding/error baseline, prior 77 targeted cases, 67 exact root/retirement/leaf guard cases, and five newly added inspection cases. These are overlapping evidence sets, not an additive test total; unchanged broad suites were not rerun.
  • Changed live Python files: Ruff zero findings. Independently verified the final 18 import-order/line-wrap-only edits have equivalent normalized ASTs; all other product source, policy, manifest, and retained evidence hashes are unchanged across the final documentation work.
  • Independently reviewed all four migration documents plus six additional active-consumer documents. The one affected class-qualified layout-document gate passes. The tracked/materialized Markdown retired-locator scan has no unexpected active consumer: remaining mentions are explicit retirement/release maps or unchanged historical contract evidence.
  • Real SCM sdist → wheel build passed, followed by standard installation into a new outside-checkout venv with the declared skills extra. The isolated installed-project checker and installed R1 checks passed: exact ten tracked root modules plus allowed generated metadata, all eleven old imports fail, installed/version metadata agree, REPO_TYPES identity and all seven pack bytes match. Wheel version 0.1.11.dev19+ge406ba65b; SHA-256 97f6dd0c6743f8c4fa0de74da0aec55b8c33c444125e8463b3e6932fe16f9d88.
  • A coordinator test invocation initially omitted the containing unittest class and returned pytest usage exit 4. Its log is retained; the corrected exact class-qualified test passes, with no product/test change to hide that invocation error.

Review-fix follow-up (2026-11-16, Asia/Shanghai)

Follow-up commit 225d578ef623324329a46db04eb368a3644f603f changes only tests/test_architecture_closed_loop.py and the generated docs/skill-coverage.md. Both reported failures were real R1 regressions, not baseline failures: Linux full-check 3.10 and 3.11 each reported 2 failed / 4650 passed at the original e406ba65 head.

  • The original Fable 5.2/max session authored the guard fix and three negative-control tests. All six original forbidden families remain; only the two exact migrated Knowledge/Apps seam modules are exempted, and all three required seams remain asserted. Controls reject adjacent/unintended modules, descendants, aliases/package bindings, and CLI/parser/runner/Benchmark coupling using the same guard. Independent local validation passed the original failing seam test and all three new controls (four selected tests), plus Ruff on the changed test file. Those exact guard bytes were unchanged during generation and commit; the checks were reused, not needlessly rerun.
  • The coordinator ran the existing, unchanged deterministic tools/build_skill_coverage.py, then its --check and the two affected committed-view/byte-identical-regeneration tests: all exit 0. The tool and local metadata-reader imports/calls were audited: no AI inference or network/model call is used. There was no manual edit to generated content and no claim that the model executed the generator.
  • An independent input audit compared all 165 selected source files byte-for-byte with their exact HEAD Git objects, including the complete set of two tracked frozen protocol inputs: no missing/extra inputs or byte mismatches. The actual stale HEAD header was fbc4d29e...; the unchanged generator correctly emits input digest fa0002a1.... This corrects the earlier relayed digest direction; these are input digests, not whole-document hashes. The generated document's actual SHA-256 is 645f404a8127251b20518fcd4bac198416d05bc9340eec5cca0b89cb9293220d.
  • git diff --check passed. Ordinary git add initially refused this generated document outside the existing sparse definition; the retained log records that environment/staging error. Supported git add --sparse -- staged exactly the two accepted paths, without changing sparse/global configuration. Normal commit and SSH push succeeded; no hooks were skipped, no history was rewritten, and the retained untracked log was not staged.
  • Main was re-read before commit and independently after push at 04:35 Asia/Shanghai: still 5db1bc94042f386f0b4b35c3e6fe91598fef118f. No runtime source, policy, manifest, frozen input or generator changed in this follow-up. The earlier installed-wheel evidence remains tied to original e406ba65; no new-head wheel/full-suite/Linux-pass claim is made and no unchanged wheel/broad suite was rerun. New-head CI and independent reviewer rechecks remain pending.

Integration and remaining scope

Normal checkpoint e406ba65b61fdf722365bc94777294b9b2f86d6f is based on main 5db1bc94042f386f0b4b35c3e6fe91598fef118f (merged #458). No rebase/amend/force/reset/clean; unrelated old #408 work, evidence branches and retained worktrees are untouched. Main was independently re-read through GitHub at 2026-11-16T03:03:05+08:00 (Asia/Shanghai), still the same SHA; exact-head-branch PR lookup was empty. The publisher must re-check main and branch immediately before push/creation.

The real gate has zero violations and zero compatibility pairs, but three remaining blockers: the temporary root-arguments leaf importer (A1), twelve Harness→Infra package/artifact path hits across six modules (R2), and five runtime resource loaders (R3). Both isolation flags remain false. This PR does not implement A1/A2/M1/R2/R3 or claim final isolation.

Validation is Windows/local and targeted, not a full-suite or Linux-pass claim. Four pre-existing Ruff F811 findings in unchanged harness/run_store.py remain outside this diff. An older root-data diagram predating R1 was not expanded into this change. A1 read-only planning produced no final plan at its finite bound and has not been represented as completed or implemented.

Review and authorship

Formal architecture review is required for the manifest revision, permanent exact leaf rule, temporary importer and protected-path maintenance; passing tests are not that approval.

All substantive hand-authored source/tests/docs edits were produced by the same admitted Claude Code Fable 5.2/max implementation session, including the final migration and active-consumer docs and this review-fix test change. The coordinator performed scope control, independent verification, mechanical execution of the unchanged deterministic generator, Git operations and PR metadata, not substantive product authorship. The generated coverage view was not model-executed or manually authored. Model/effort values are client-requested/reported provenance, not independent backend attestation.

{"schema_version":1,"head_sha":"225d578ef623324329a46db04eb368a3644f603f","human_only":false,"material_ai_authors":[{"tool":"Claude Code","model_id":"claude-fable-5-2","effort":"max","role":"author"}]}

Refs #412

Agent-assisted-by: Claude Code (author)
Signed-off-by: GUOGUO <xwdong1998@163.com>
@github-actions

github-actions Bot commented Nov 15, 2026 •

Copy link
Copy Markdown

Skill evaluation

PLANNED: not executed; there are no task outcomes yet.
No approval, model efficacy or current-head test result is implied.

  • Next: resolve check applicability at head 225d578ef623324329a46db04eb368a3644f603f.
  • Task selection: no supported automatic comparison; choose a relevant source/content check and disposition uncovered claims.
  • Selected comparisons: 0 · Estimated task calls: 0. Uncovered/unsupported changes: 94; Canonical library paths: 0; Generated projection paths: 0; Other paths: 94. These are paths, not independent claims.
  • Return: command, input/source pin, exit status, outputs/failures and untested claims for independent verified/refuted/unverified disposition.
Author verification steps (nonpaid; not yet run)
  1. Bind the checkout. Run git rev-parse HEAD; it must equal 225d578ef623324329a46db04eb368a3644f603f. If it differs, obtain a current plan; do not reuse old results.
  2. Choose an applicable check. Match each changed behavior to the task below or a source/content check; a path match alone does not establish relevance.
    No supported automatic comparison is selected. Review the canonical changes and explain which claims need evidence, are unaffected, or remain unverified; do not treat generated records as separate behavioral claims.
    Uncovered scope by location: Canonical library paths: 0; Generated projection paths: 0; Other paths: 94. Path counts are not claim counts; no metadata-only conclusion is inferred.
  3. Return evidence for independent review: head, check/task/source pin, command, environment, exit status, outputs/failures and untested claims. Label scripted controls. Request each claim's disposition: verified, refuted or unverified; this plan proves neither model provenance nor benefit.
    Check recipes and evidence limits

Evidence and logs · Retention: 30 days.
Retained artifacts are verifiable only before Unix time 1797366985 while the linked artifact is available. Expired evidence is unverified.

Plan bindings, budget, frozen exam and advisory details

Advisory: obtain missing evidence

Retained evidence availability: planned / unexecuted. No approval or merge authorization is issued.
Applicable only while these revisions and inputs match the current PR.
Paid execution requires trusted label authorization and cumulative PR reservation. Unknown accounting blocks new paid calls; planning is not execution.
Pipeline evidence only; offline fixed outputs do not establish skill efficacy.
Unchanged-correct is valid neutral evidence, not incremental benefit.
Content/source review and authorship admission remain separate.
Trusted regrading checks retained answers, not model/hardware provenance or a hostile executor; this is not an efficacy certification.

  • Retained evidence is planned / unexecuted.
  • No supported comparison cases were selected.
  • Uncovered/unsupported scope needs a case or explicit reviewer disposition.
    Plan SHA-256: cfa295c22f8e727c15cde7773ce03435cf7e8eccb9f33594892ec438383424b2
    Base: 5db1bc94042f386f0b4b35c3e6fe91598fef118f · Head: 225d578ef623324329a46db04eb368a3644f603f
    Trusted implementation: 5db1bc94042f386f0b4b35c3e6fe91598fef118f

Model/settings: {"effort":"not_applicable","name":"claude-opus-5-5"}
Budget: {"comparisons":0,"estimated_calls":0,"limits_per_comparison":{"campaign_seconds":600,"max_task_calls":2,"repeats":1,"timeout_seconds":180,"token_stop_new_trials":200000},"provider_config_sha256":"b28d80f8194fbe0f5a9f01515efb24b218979fd45f702776560da276f4b30d04","reservation":null}

Skill Comparison Cases Estimated calls

Automatic execution / cumulative PR budget:

{"reason":"Trusted configuration or pricing missing, invalid or expired","remaining_usd":"unknown","reserved_or_unresolved_usd":"unknown","spent_or_legacy_usd":"unknown","state":"blocked"}

Provider/settings: {"client":{"api_version":"2023-06-01","endpoint":"https://yibuapi.com/v1/messages","kind":"anthropic-messages-full-context-v1","max_output_tokens":4096,"max_read_bytes":32768,"max_request_bytes":262144,"max_requests":1,"max_tool_calls":12,"provider":"yibuapi"},"limits":{"token_stop_new_trials":200000},"model":{"effort":"not_applicable","name":"claude-opus-5-5"},"pricing":{"currency":"USD","expires_at":1793271228,"group":"default","max_input_tokens":1000000,"model":"claude-opus-5-5","rate_evidence":"https://github.com/InferMatrixLab/InferRSI/issues/215#issuecomment-6467531341","rates":{"cache_read":"0.4","cache_write":"10","input":"8","output":"40"},"request_fee":"0","unit":"per_million_tokens"},"spend_limit":{"amount":"200","currency":"USD"}}

Uncovered / unsupported paths (94)
  • uncovered: ".github/knowledge-model-policy.json"
  • uncovered: "CHANGELOG.md"
  • uncovered: "docs/architecture.md"
  • uncovered: "docs/contracts/current-design.md"
  • uncovered: "docs/knowledge-base.md"
  • uncovered: "docs/knowledge-contribution-workflow.md"
  • uncovered: "docs/knowledge-model-policy.md"
  • uncovered: "docs/knowledge-operations.md"
  • uncovered: "docs/knowledge-store.md"
  • uncovered: "docs/legacy-knowledge-manifest.json"
  • uncovered: "docs/module-layout.md"
  • uncovered: "docs/operations.md"
  • uncovered: "docs/reference-matrix.md"
  • uncovered: "docs/skill-coverage.md"
  • uncovered: "src/inferrsi/_skill_selection.py"
  • uncovered: "src/inferrsi/_source_snapshot.py"
  • uncovered: "src/inferrsi/apps/inspection.py"
  • uncovered: "src/inferrsi/apps/legacy/run.py"
  • uncovered: "src/inferrsi/arguments.py"
  • uncovered: "src/inferrsi/catalog.py"
  • uncovered: "src/inferrsi/cli.py"
  • uncovered: "src/inferrsi/evaluation.py"
  • uncovered: "src/inferrsi/execution.py"
  • uncovered: "src/inferrsi/inspection.py"
  • uncovered: "src/inferrsi/knowledge_operations.py"
  • uncovered: "src/inferrsi/knowledge_store.py"
  • uncovered: "src/inferrsi/reporting.py"
  • uncovered: "src/inferrsi/research.py"
  • uncovered: "src/inferrsi/skill_catalog.py"
  • uncovered: "tests/_gate_policy_support.py"
  • uncovered: "tests/architecture_real_ports.py"
  • uncovered: "tests/check_installed.py"
  • uncovered: "tests/test_architecture_closed_loop.py"
  • uncovered: "tests/test_ascend_video_diffusion_skill.py"
  • uncovered: "tests/test_bundle_manifest.py"
  • uncovered: "tests/test_campaign_record_injection.py"
  • uncovered: "tests/test_campaign_task_selection.py"
  • uncovered: "tests/test_cli_catalog.py"
  • uncovered: "tests/test_collect_limit_serialization.py"
  • uncovered: "tests/test_collect_selection.py"
  • uncovered: "tests/test_contracts_package.py"
  • uncovered: "tests/test_first_wave_isolation_policy.py"
  • uncovered: "tests/test_flare_knowledge.py"
  • uncovered: "tests/test_h3_knowledge.py"
  • uncovered: "tests/test_h3_metal_knowledge.py"
  • uncovered: "tests/test_hopper_knowledge.py"
  • uncovered: "tests/test_inspection.py"
  • uncovered: "tests/test_knowledge_cli.py"
  • uncovered: "tests/test_knowledge_compatibility_shells.py"
  • uncovered: "tests/test_knowledge_contract.py"
  • uncovered: "tests/test_knowledge_install.py"
  • uncovered: "tests/test_knowledge_model_policy.py"
  • uncovered: "tests/test_knowledge_operations.py"
  • uncovered: "tests/test_knowledge_store.py"
  • uncovered: "tests/test_knowledge_tiers.py"
  • uncovered: "tests/test_legacy_run_forwarder_gate.py"
  • uncovered: "tests/test_legacy_run_split.py"
  • uncovered: "tests/test_legacy_run_v0_frozen.py"
  • uncovered: "tests/test_local_dream_repo_to_skill.py"
  • uncovered: "tests/test_ltx25_campaign.py"
  • uncovered: "tests/test_mlx_discovery.py"
  • uncovered: "tests/test_mlx_knowledge.py"
  • uncovered: "tests/test_mlx_lm_knowledge.py"
  • uncovered: "tests/test_optimization_session.py"
  • uncovered: "tests/test_optimization_story.py"
  • uncovered: "tests/test_package_root_inventory.py"
  • uncovered: "tests/test_performance_ceiling.py"
  • uncovered: "tests/test_pytorch_torchnpu_integration.py"
  • uncovered: "tests/test_qwen3_tts_knowledge.py"
  • uncovered: "tests/test_raw_string_selection.py"
  • uncovered: "tests/test_repository_packs_facade.py"
  • uncovered: "tests/test_research.py"
  • uncovered: "tests/test_resource_migration.py"
  • uncovered: "tests/test_runtime.py"
  • uncovered: "tests/test_skill_catalog.py"
  • uncovered: "tests/test_skill_coverage_view.py"
  • uncovered: "tests/test_skill_eval_compare.py"
  • uncovered: "tests/test_skill_eval_optional_dependencies.py"
  • uncovered: "tests/test_skill_eval_snapshot.py"
  • uncovered: "tests/test_skill_evaluation.py"
  • uncovered: "tests/test_skill_index.py"
  • uncovered: "tests/test_skill_library.py"
  • uncovered: "tests/test_skill_library_readers.py"
  • uncovered: "tests/test_source_snapshot.py"
  • uncovered: "tests/test_summary_chart.py"
  • uncovered: "tests/test_target_module_import_gate.py"
  • uncovered: "tests/test_vllm_ascend_rc_skill.py"
  • uncovered: "tools/build_skill_coverage.py"
  • uncovered: "tools/build_skill_index.py"
  • uncovered: "tools/evaluate_indexer.py"
  • uncovered: "tools/skill_eval_compare.py"
  • uncovered: "tools/skill_eval_improve.py"
  • uncovered: "tools/skill_eval_pilot.py"
  • uncovered: "tools/skill_eval_snapshot.py"

@Dong1017 Dong1017 added the kind:task Bounded delivery task with a delegated slice label Nov 15, 2026

Copy link
Copy Markdown
Collaborator Author

@amy-why-3459 @zengchuang-hw Please review R1, tracked by Issue412. This PR retires eleven root modules, preserves the canonical Apps inspection binding, migrates active consumers, and updates the exact root10 and neutral-leaf guards. Head e406ba65 includes main 5db1bc94. Focused validation and the real fresh-venv installed-wheel checks passed; remaining A1/R2/R3 blockers and baseline limitations are documented in the PR body. The manifest and permanent leaf rule require formal architecture review.

@zengchuang-hw zengchuang-hw left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR review verdict — DO NOT PASS

Independent first review of R1 for #412, requested in #459 (comment).
Reviewed range: 5db1bc94042f386f0b4b35c3e6fe91598fef118f..e406ba65b61fdf722365bc94777294b9b2f86d6f (one commit). No previous review by this account on this PR; resolved prior findings: not applicable. This conclusion comes from the actual code and independent checks, not other reviewers' opinions.

Blocking regression, P1: the migrated real-port architecture guard now contradicts itself.
At tests/test_architecture_closed_loop.py:358–373, the required imports were correctly migrated to inferrsi.knowledge.knowledge_operations and inferrsi.apps.legacy.evaluation, matching tests/architecture_real_ports.py. However, the subsequent forbidden-prefix loop still rejects every inferrsi.knowledge.* and inferrsi.apps.* import, including those two mandatory imports. The test deterministically fails at line 373.

Independent reproduction on this exact head:

python -m pytest tests/test_architecture_closed_loop.py::ClosedLoopTest::test_real_ports_stay_on_three_existing_seams
# FAIL: AssertionError at line 373

The identical command against the base commit passes (1 passed). This is a regression introduced by this migration, not a pre-existing test failure.

Required before approval: migrate the guard consistently to allow only these exact intended canonical seams while continuing to reject unrelated Apps/Knowledge imports, CLI/parser and Harness runner coupling. Add negative coverage for adjacent/unintended modules; do not simply remove the broad boundary check. Rerun the architecture suite and required checks on the corrected head.

Other independently checked R1 properties:

  • Eleven root files are removed, canonical host-inspection binding preserves late-bound command/snapshot ports and exceptions, and the legacy runner resolves omitted ports at call time while explicit ports win.
  • The manifest archives the previous nine pair records and catalog routes unchanged; compatibility pairs are now zero. The permanent importer is the exact Infra inspection/pack-reader edge, with the separate temporary root-arguments REPO_TYPES edge still reported as an A1 blocker. The protected-path diff removes only the three deleted root entries; canonical protections remain.
  • The actual-tree report has no violations but still has the temporary importer, 12 Harness→Infra hits and five runtime-loader blockers. Isolation remains false. This does not complete #412 or A1/R2/R3.
  • Frozen evidence and legacy fixtures have no diff. Import/pickle incompatibility and canonical replacements are documented.

Checks actually executed in an isolated Linux/Python 3.12 checkout:

  • Focused inspection, legacy-run/frozen contracts, isolation/import/retirement/root inventory, resource facade/contracts, policy, CLI and runtime suites: 484 passed, 267 subtests passed.
  • Architecture closed-loop, campaign-record injection, Knowledge operations/store/CLI/tiers and resource migration: 118 passed, 2 skipped, 1 failed, 2 subtests passed (failure above).
  • Optional-dependency, research, CLI/catalog, Knowledge contract, task-selection and manifest suites: 76 passed, 2 subtests passed.
  • Independent base/head single-test comparison as above.
  • Ruff on every surviving changed Python file and git diff --check: passed.
  • Real SCM sdist → wheel build, normal installation into a fresh outside-checkout venv with PyYAML, and isolated tests/check_installed.py: passed, 128 records and 923 resource files; inventory SHA-256 98394be4528916f4de7199a9a21f2b9d00433895b8546a73ee603fbb762faf47. This local build produced version 0.2.2.dev10+ge406ba65b; it is independent installed-content validation, not a claim to reproduce the author's differently versioned wheel bytes.
  • Exact-head GitHub checks observed: installed-package 3.10/3.11 and lint-and-smoke succeeded; full-check 3.11 failed and full-check 3.10 was still running at last observation.

Not executed: full repository suite, Windows tests, accelerator/service experiments. Initial default-Python invocation lacked pytest; after installing dependencies in a separate venv, the commands above ran. No source edits, pushes, merge or auto-merge actions were taken.

Non-blocking suggestions: none beyond keeping the already documented staged-isolation limitations explicit. Submitting COMMENT rather than REQUEST_CHANGES under the review action scope; approval is withheld until the regression is fixed and revalidated.

Copy link
Copy Markdown
Collaborator

本次看的是 5db1bc94042f386f0b4b35c3e6fe91598fef118f..e406ba65b61fdf722365bc94777294b9b2f86d6f(单 commit)。当前 head 上 Linux CI full-check (3.11) 失败:2 failed, 4650 passed(https://github.com/InferMatrixLab/InferRSI/actions/runs/43750604762/job/132923476372)。下面两项需要先修好,这次不 Approve。

  1. tests/test_architecture_closed_loop.py 的 test_real_ports_stay_on_three_existing_seams(约 358–373 行)。允许的 seam 已迁到 inferrsi.knowledge.knowledge_operations 和 inferrsi.apps.legacy.evaluation,但随后的 banned prefix 仍包含 inferrsi.knowledge 和 inferrsi.apps。守卫用的是 name == prefix or name.startswith(prefix + "."),因此这两条必选 import 必然失败。这是这次迁移引入的回归,不是原先就失败的测试。请把守卫改成只放行这三条精确 seam,同时继续拒绝其他 Apps/Knowledge 模块以及 CLI/parser、harness.runner 耦合,并补上相邻/非预期模块的反例;不要只删掉这条边界检查。

  2. tests/test_skill_coverage_view.py:133 的 test_committed_view_matches_its_sources。tools/build_skill_coverage.py 已改为从 inferrsi.knowledge.skill_catalog 导入,但本 PR 没有更新 docs/skill-coverage.md。CI 里重新生成的视图 sha256 是 fbc4d29e40a03beefb6c204f5defd7f817f5d5f68fb102926b3e746bc8801eee,提交中仍是 fa0002a1fd489bb9d70a4462ed2e941b98f5641e2cc7ef72a682ed0c5a0d6bb9。请在当前 head 上重跑 tools/build_skill_coverage.py,把更新后的文档一并提交。

R1 主线(删除 11 个根模块、Apps inspection 绑定与按次读取端口、compatibility_pairs 清零、永久/临时叶子 importer 规则、REPO_TYPES 同一性、protected paths 只去掉三个已删根路径)我对照 #412 看过,方向是对的。等上述两项在新的 head 上修好并通过检查后,再复核一次。

Copy link
Copy Markdown
Collaborator Author

@amy-why-3459 @zengchuang-hw Both reported regressions are fixed in 225d578ef623324329a46db04eb368a3644f603f, based on unchanged main 5db1bc94042f386f0b4b35c3e6fe91598fef118f. The architecture guard retains all six original forbidden families, exempts only the two migrated canonical Knowledge/Apps seam modules, and preserves all three required seams; three new same-guard negative tests cover unintended coupling. Independent local checks passed the original failing seam test plus all three new tests and changed-file Ruff. The unchanged deterministic repository generator regenerated docs/skill-coverage.md; its check and both affected committed-view/byte-identical tests passed. All 165 generator inputs were independently matched byte-for-byte to HEAD, with no missing frozen inputs. This follow-up changes only the test and generated view; runtime source, manifest and policy are unchanged. The PR body records the actual generator caller, corrected input-digest direction and evidence limits. New-head CI is not yet claimed green. Please re-review both findings on this head.

@zengchuang-hw zengchuang-hw left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR review verdict — DO NOT PASS (required-check evidence pending; previous code blocker resolved)

Independent incremental re-review of R1 / #412. Previous review: #459 (review) . Reviewed increment: e406ba65b61fdf722365bc94777294b9b2f86d6f..225d578ef623324329a46db04eb368a3644f603f (one commit); current base 5db1bc94042f386f0b4b35c3e6fe91598fef118f. I read the actual two-file diff and affected assembler/test code independently, without using other reviewers' opinions.

Resolved: the real-port architecture test no longer simultaneously requires and bans its two canonical seams. The six banned families remain intact; exemptions are the two exact module names, not prefix allowances. Added controls reject adjacent/descendant modules, package imports, aliases, nested imports, CLI/parser/runner/Benchmark imports, and mutations of the real assembler. The import collector retains all module names checked previously and additionally inspects absolute from-import candidates. No product/runtime source changed in this increment. The regenerated skill-coverage digest matches its sources.

Checks actually executed on this exact head in an isolated Linux/Python 3.12 worktree:

  • PYTHONPATH=src:tests python -m pytest -o addopts='' -q tests/test_architecture_closed_loop.py tests/test_first_wave_isolation_policy.py tests/test_target_module_import_gate.py: 82 passed, 293 subtests passed. This includes the previously failing test and the new negative/mutation controls.
  • Ruff on the changed Python file: passed.
  • python tools/build_skill_coverage.py --check: passed.
  • git diff --check e406ba65 HEAD: passed.

Approval prerequisite still outstanding: GitHub's exact-head full-check (3.10) and full-check (3.11) are both still in progress at this review. I have not independently rerun the full repository suite, so I cannot treat these aggregate checks as passed. Complete them successfully, or investigate any failures, before approval. Exact-head installed-package 3.10/3.11, lint-and-smoke, dashboard-browser and pr-references succeeded. A later declarations run succeeded after an earlier failed run; that does not replace the unfinished full-check matrix.

Not rerun this round: full suite, independent sdist/wheel installation, Windows or accelerator/service checks. The prior review's extensive unchanged-code and installed-content evidence remains historical evidence at its stated old head, not a claim of re-execution here. This narrow re-review resolves the reported R1 test regression; it does not declare overall #412 isolation or A1/R2/R3 complete.

Non-blocking suggestions: none. No new code blocker found in the increment. Publishing this exact-head COMMENT now rather than withholding the review while CI runs; no REQUEST_CHANGES, approval, push, merge or auto-merge action.

@zengchuang-hw zengchuang-hw left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

PR review verdict — PASS

Independent R1 re-review for #412, current base 5db1bc94042f386f0b4b35c3e6fe91598fef118f, exact head 225d578ef623324329a46db04eb368a3644f603f.
Increment reviewed: e406ba65b61fdf722365bc94777294b9b2f86d6f..225d578ef623324329a46db04eb368a3644f603f.
Previous blocking review: #459 (review) . Detailed incremental code/test review: #459 (review) . This approval completes that review after the outstanding aggregate CI evidence arrived; it is not based on other reviewers' opinions.

Resolved: the architecture guard's required-versus-banned canonical-import contradiction. Only the two exact canonical seams are exempted; the six forbidden families and negative/mutation coverage remain enforced. The coverage-document input digest is regenerated correctly. No runtime/product code changes in this increment, and no new blocking code issue found.

Independent checks actually executed on this head: architecture closed-loop, first-wave isolation policy and target-module import-gate suites: 82 passed, 293 subtests passed; changed-file Ruff, skill-coverage --check and incremental git diff --check: passed.

The remaining approval prerequisite is now satisfied: exact-head GitHub full-check (3.10) and full-check (3.11) both completed successfully, alongside installed-package 3.10/3.11, lint-and-smoke, dashboard-browser and pr-references. I also verified the apparent declarations conflict: run 43758975445 failed, then run 43759111145 succeeded for the same head, same workflow ID 391541746 and .github/workflows/knowledge-model-policy.yml, same pull_request_target event type. The separately published current knowledge-model-policy commit status is success. Thus the earlier historical failure is superseded by the later successful declaration reconciliation, not an uninvestigated failure being ignored. The execute job is skipped, not a passing execution claim.

Not independently rerun this round: complete repository suite, local sdist-to-wheel installation, Windows or accelerator/service experiments. Complete-suite and installed-package evidence this round is the exact-head CI above; the prior review's local installed-content verification remains evidence only for its stated old head. This approval is scoped to R1 and does not assert overall #412 completion, final isolation, A1/R2/R3 delivery or campaign performance PASS.

Approval-before-do items: none outstanding for this reviewed R1 change. Non-blocking suggestions: none. PR author, open state, base/head and this account's absence of an existing same-head approval were rechecked. No source edits, push, merge or auto-merge actions.

@amy-why-3459 amy-why-3459 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

PR review verdict — PASS
Reviewed range e406ba65b61fdf722365bc94777294b9b2f86d6f..225d578ef623324329a46db04eb368a3644f603f (one fix commit) against unchanged main 5db1bc94042f386f0b4b35c3e6fe91598fef118f. This is a re-review of the two blockers I reported on the previous head.

Verified:

  • The seam guard now exempts only the two exact canonical seams (inferrsi.knowledge.knowledge_operations, inferrsi.apps.legacy.evaluation) and still bans the six original families, including sibling/parent/child modules, CLI/parser, harness.runner, and Benchmark. The three new negative tests cover those cases. Independently ran the full tests.test_architecture_closed_loop suite: 18 passed, including the previously failing test_real_ports_stay_on_three_existing_seams.
  • docs/skill-coverage.md matches an independent tools/build_skill_coverage.py --check and tests/test_skill_coverage_view.py (18 passed). The regenerated input digest is sha256:fa0002a1fd489bb9d70a4462ed2e941b98f5641e2cc7ef72a682ed0c5a0d6bb9. My previous comment swapped the committed vs regenerated digests; reproducing --check on e406ba65 confirms the committed file still had fbc4d29e and the generator produced fa0002a1. This head has the correct generated digest, and only that line of the view changed.
  • GitHub exact-head checks observed green: full-check 3.10/3.11, installed-package 3.10/3.11, lint-and-smoke, dashboard-browser, pr-references, and the later knowledge-model-policy declarations run. The earlier declarations failure on this same head was superseded by that later success after the PR body declaration was updated to this SHA. The skill-eval execute job is skipped, not a passing execution claim.

This approval is scoped to the R1 fix on this head. It does not claim #412 completion, final isolation, or A1/R2/R3.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind:task Bounded delivery task with a delegated slice

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants