Skip to content

docs: settle the workflow sidecar shape and let sidecars supply recommendations - #243

Merged
Dong1017 merged 1 commit into
InferMatrixLab:mainfrom
Dong1017:docs/skill-sidecar-batch1
Oct 29, 2026
Merged

Dong1017 merged 1 commit into
InferMatrixLab:mainfrom
Dong1017:docs/skill-sidecar-batch1

Conversation

@Dong1017

@Dong1017 Dong1017 commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Batch 1 of the #91 Round 2 plan

Round 1 (merged in #194) built the reverse coverage view with a row per
registered skill id. Every field it could not answer said unknown, and five
workflow skills had no sidecar at all. This batch settles the two contract
decisions that later batches depend on, and proves them on the six workflow
skills.

Plan and review: #91 Round 2 scope and plan.

Decision 1 — reuse the sidecar envelope, add typed workflow conditions

No parallel record system. applicability gains four keys that describe a
procedure rather than hardware:

Key What it states
input_contract What the procedure receives
produced_artifact What it emits
failure_modes Conditions under which it produces a wrong or unusable result
refusal_point The point at which the procedure must refuse instead of proceeding

scope and prerequisites keep their existing meaning. No workflow sidecar
declares hardware, because a process skill has no device dimension.

The five new sidecars and the existing npu-skill-factory sidecar now share one
shape, so the six registered workflows/ skills are consistent rather than
five-plus-one.

Decision 2 — recommendations becomes a sidecar field

tools/build_skill_index.py emitted the same two sentences for all 77 records
and no sidecar could contribute. It now calls recommendations(metadata):

Sidecar state Emitted
field absent the previous generic navigation text (unchanged behaviour)
non-empty list the owner's own advice
explicit [] empty; no fallback

An explicit empty list is a statement that there is no procedure-specific
advice, so it must not silently fall back to the generic text.

Decision on not-applicable versus blank

tools/build_skill_coverage.py now reads applicability and distinguishes
three states that previously all rendered as a blank cell:

State Rendered Counted as a gap
field absent or {} **unknown** yes, no-applicability
declared, not-applicable value scope text plus N/A: <dimensions> no
declared scope the scope text no

The blanket value is not-applicable. A dimension marked that way is a
reasoned statement, not a missing field, and it does not count as coverage.

The view now exposes the fields it is credited with

The plan review noted that the coverage view did not collect applicability or
recommendations at all, so filling the empty sidecars would have changed nothing in
the table. The generator now collects both and adds two columns to every
registered table, plus no-applicability to the gap legend and the
recorded-gaps table:

  • Applicability holds the declared scope; a list-valued scope, which the
    catalog accepts, renders as its joined entries. A dimension marked
    not-applicable renders as N/A: <dimension> independently of scope, so an
    N/A-only declaration keeps its marker instead of collapsing into
    — (declared, no scope).
  • Conditions lists the typed keys other than scope, hardware and
    prerequisites, plus the advice count. Changing a workflow contract field or an
    owner's recommendations therefore changes the visible row.

recommendations is counted (N advice) rather than rendered in full: 77 rows of
prose would not fit the table.

Validation rules added

skill_catalog._effective() now rejects malformed values before any generator
reads them:

  • recommendations must be a list of non-empty strings; [] is allowed.
  • applicability must be a mapping; each value is a non-empty string or a
    non-empty string list.

These run on every sidecar in the library, not only the new ones.

Validation stays strict, but it no longer runs during identity enumeration.
KnowledgeReader.owners() now reads registered names through
skill_directories(), which resolves paths and entry files only. A malformed
sidecar therefore fails when Collect reads the owner that declares it, through
the existing per-item handler, and becomes that owner's invalid omission. An
unrequested malformed owner no longer aborts a request for a valid one, and
collect(ids=["sk", "ok"]) with a broken sk returns checkout:ok plus an
invalid omission for sk.

Scope accounting at this revision

Counts read after rebasing onto main = ab03f3ff:

Measure Value
Registered ids 77
metadata.json sidecars 77 (was 72)
applicability absent or empty 41 (unchanged; this batch fills 0 of them)
SKILL.md documents 124
Unregistered documents 47

The 41 empty applicability fields belong to batches 2 through 4
(methods 17, hardware 20, repositories 3, frameworks 1). This batch adds
the keys and the rendering, not the content.

Incidental fix required to generate the index

build_index() passed every skill input path on one command line to
git diff. At 545 inputs that exceeds the Windows process-argument limit, so
tools/build_skill_index.py failed with WinError 206 on Windows. It now
compares the whole-tree diff and intersects in Python. The check is equivalent
and the error message is unchanged. This is a pre-existing defect, not
introduced here.

Checks

  • ruff check src tests tools clean.
  • tests/test_skill_coverage_view.py, test_skill_catalog.py,
    test_knowledge_contract.py, test_skill_index.py,
    test_knowledge_operations.py: passing.
  • New tests cover: absent/empty/not-applicable separation, gap classification,
    workflow row shape, recommendation fallback and explicit-empty behaviour, and
    that filling conditions never raises locally_verified or changes
    empirical_validation.
  • Rendered-output tests cover the Conditions column, an N/A-only declaration
    and a list-valued scope through collect and render.
  • test_knowledge_operations.py covers a malformed sidecar as a per-owner
    invalid omission, including an unrequested malformed owner.
  • docs/skill-coverage.md regenerated in the same commit as its sources.

Not claimed

No evaluation, no verdict, no promotion. status stays candidate for all 77
skills and empirical_validation is unchanged. no-eval still applies to 75
rows and belongs to Round 3. No matrix row was added or edited; layer decisions
are batch 5.

Refs #91

Protected path

src/inferrsi/data/repo_packs/inferrsi/knowledge/ holds 72 generated files in
this diff. They are the output of tools/build_skill_index.py and were produced
in the same commit as their sources under data/skill_library/; no record was
hand-edited. The change to those records is confined to
skill_metadata.recommendations and the six workflow skills' skill_metadata,
which now carry the new sidecar fields.

The declaration below is required because the path matches
repo_packs/**/knowledge/**.

Refs #91, batch 1 of 5

{
  "schema_version": 1,
  "head_sha": "5076062136a62b5ab0a839c5413bc7303c7919bd",
  "human_only": false,
  "material_ai_authors": [
    {
      "tool": "Claude Code",
      "model_id": "claude-opus-5-5",
      "effort": "xhigh",
      "role": "author"
    }
  ]
}

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-29T03:55:59.489537Z 1b78683 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Skill evaluation

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"}

Advisory: obtain missing evidence

Retained evidence availability: planned / unexecuted. No approval or merge authorization is issued.

  • Retained evidence is planned / unexecuted.
  • No supported comparison cases were selected.
  • Uncovered/unsupported scope needs a case or explicit reviewer disposition.

PLANNED: execution is not authorized by knowing this hash.
Outcomes: {"fix":0,"inconclusive":0,"missing_pair":0,"regression":0,"unchanged_correct":0,"unchanged_incorrect":0}
Earlier revision results are stale for this plan.

Selected comparisons: 0 · Estimated task calls: 0.
Uncovered/unsupported changes: 94. Gaps never count as passes.

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.
Evidence and logs · Retention: 30 days.
Outcomes are historical; verifiable only before Unix time 1795872199 while the linked artifact is available. Expired evidence is unverified.

Plan bindings, budget, frozen exam and advisory details

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.

Per-case outcomes (discovery excluded; regressions and gaps first):

[]

Showing at most 20 of 0 pairs; the evidence link contains all outcomes, including omitted regressions/gaps.

Plan SHA-256: 789d034dc3572f6e59f13403d6f1c61c682e8a204f88167de3003a5f8daf8448
Base: ab03f3ffb8f2e5bc02c304828c5c41890eef673e · Head: 5076062136a62b5ab0a839c5413bc7303c7919bd
Trusted implementation: ab03f3ffb8f2e5bc02c304828c5c41890eef673e

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

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: "docs/skill-coverage.md"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/README.md"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-aclgraph-capture-replay.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-device-health.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-distributed-parallel.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-graph-mode.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-model-adaptation.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-operator-profiling.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-operator-tuning.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-optimization-casebook.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-performance-analysis.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascend-video-diffusion-optimization.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/ascendc-tiling-design.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/cann-attribution-overlap.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/torchnpu-device-memory-lifecycle.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/ascend/skills/torchnpu-pinned-host-memory-lifecycle.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/assess-serving-preemption.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/assess-split-backward-schedule.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-fixed-workload-claim.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-h3-metal-fasth3-semantics.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-h3-runtime-residency.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-llama-runtime-state.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-recurrent-kv-finalization.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-sd-cpp-residency.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-sglang-diffusion-lifetimes.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/audit-vllm-kv-lifetimes.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/bound-windowed-attention-replay.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/budget-speculative-verification.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/calibrate-serving-simulation.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/cgroup-resource-controls.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/checkpoint-recovery-consistency.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/choose-parallel-training-plan.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/cite-check-downstream-pr.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/claim-contract.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/comfy-ui.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/competitor-scan.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/dcp-async-save-performance.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/dense-performance-evidence.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/diagnose-vllm-admission-pressure.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/diffusers-invocation-state.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/draft-acceptance-issue.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/dwarfstar.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/evaluate-elastic-serving-placement.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/generation-cache-lifecycle.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/host-memory-management.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/host-overhead-optimization.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/husky.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/inference-benchmark-design.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/inference-optimization-casebook.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/kernel-writing-guide.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/kv-tier-management.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/lazy-evaluation-stream-lifetimes.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/lily.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/lithos-metal.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/local-dream.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/mistral-rs.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/mlc-llm.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/mlx-swift-lm.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/npu-skill-factory.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/optimization-search-policy.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/os-process-placement.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/performance-ceiling-analysis.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/plan-activation-residency.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/project-maya.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/repository-evolution-analysis.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/rsi-evidence.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/skill-evolution-playbook.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/splash.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/storage-io-measurement.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/training-input-pipeline.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/training-resource-budget.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/video-diffusion-optimization.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/vllm-metal.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/common/skills/weight-loading-optimization.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/audit-afd-p2p-exchanges.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/audit-flare-session-lifecycle.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/diagnose-attention-bottlenecks.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/host-overhead-profiling.json"
  • uncovered: "src/inferrsi/data/repo_packs/inferrsi/knowledge/cuda/skills/reason-hopper-kernels.json"
  • uncovered: "src/inferrsi/data/skill_library/workflows/cite-check-downstream-pr/metadata.json"
  • uncovered: "src/inferrsi/data/skill_library/workflows/claim-contract/metadata.json"
  • uncovered: "src/inferrsi/data/skill_library/workflows/competitor-scan/metadata.json"
  • uncovered: "src/inferrsi/data/skill_library/workflows/draft-acceptance-issue/metadata.json"
  • uncovered: "src/inferrsi/data/skill_library/workflows/npu-skill-factory/metadata.json"
  • uncovered: "src/inferrsi/data/skill_library/workflows/rsi-evidence/metadata.json"
  • uncovered: "src/inferrsi/knowledge_operations.py"
  • uncovered: "src/inferrsi/skill_catalog.py"
  • uncovered: "tests/test_knowledge_contract.py"
  • uncovered: "tests/test_knowledge_operations.py"
  • uncovered: "tests/test_skill_catalog.py"
  • uncovered: "tests/test_skill_coverage_view.py"
  • uncovered: "tests/test_skill_index.py"
  • uncovered: "tools/build_skill_coverage.py"
  • uncovered: "tools/build_skill_index.py"

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Integration preflight at head 1b7868365b1cc4192bc63a99ba037bd96a3e76d0, API base and observed main a0a76b33de93bc131af5849b519b58ae077aa6d2: hold for integration, not merge-ready.

GitHub reports mergeable=false / dirty. The current-head check inventory contains declaration success and Skill Eval plan/publish success, with execute skipped; no Ready full-check or installed-package results were found for this SHA. Successful planning/admission does not replace those checks.

Next owner/action: the existing PR/#91 owner should reconcile current main while preserving both sets of canonical sources, regenerate the affected discovery index and coverage view with the existing tools, refresh the truthful declaration for the resulting head, and obtain applicable Ready results. Specific conflicting files have not been reproduced locally. Re-review the resulting integration delta rather than treating the PR API base pointer as proof that it is integrated.

Verification: live refs, governing #91 discussion, changed-path inventory, review threads and exact-head checks only. This is an integration-status comment, not a source-design LGTM, batch acceptance or efficacy/promotion result; no PR code, generator, model or hardware execution.

@Dong1017 Dong1017 added the area:knowledge Knowledge line: packs, skill library, knowledge admission label Oct 29, 2026 — with ChatGPT Codex Connector
@Dong1017
Dong1017 force-pushed the docs/skill-sidecar-batch1 branch from 1b78683 to 55fbfb4 Compare October 29, 2026 06:11

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Blocking review at 55fbfb4 against 861a2bb. Prior conflict is cleared, but this revision is not merge-ready. COMMENT is used because the authenticated account is also the PR author and cannot submit a self REQUEST_CHANGES review; the finding remains blocking.

[P2] Keep invalid applicability isolated to its own Collect omission. src/inferrsi/skill_catalog.py:213–215 invokes the new recommendations/applicability validators during skill_records(). KnowledgeReader.collect() calls owners() before per-item error handling; owners() inventories every checkout skill through skill_records() (knowledge_operations.py:269,515). One malformed applicability field therefore aborts the whole collection, including unrelated valid requested skills, instead of producing the invalid owner's omission.

Existing tests/test_knowledge_operations.py:363–374 supplies applicability: &loop [*loop]. Current CI raises ValueError('Skill applicability must be a mapping: sk') rather than returning checkout:ok plus an invalid omission for sk. Preserve strict metadata validation while separating identity enumeration from per-resource validation, or otherwise preserve per-owner invalid results. Keep the mixed valid/invalid regression and cover malformed new recommendations/applicability fields; do not remove the omission assertion or make malformed metadata valid.

Ready https://github.com/InferMatrixLab/InferRSI/actions/runs/40827730489 fails both full-check jobs; both installed-package jobs pass. Python3.11 reports 1 failed,2479 passed,11 skipped,259 subtests on tested merge1c325b3ce135b9a3d3efac6c09a31a5f4b6a351b combining this head and stated base. Correct the regression and obtain applicable checks on the resulting head.

Verified via source/caller/test inspection and hosted logs, no local PR/model/hardware execution. This clears only the old conflict observation, not this blocker, #91 acceptance or efficacy.

@Dong1017
Dong1017 force-pushed the docs/skill-sidecar-batch1 branch 2 times, most recently from 8e86c67 to 417c677 Compare October 29, 2026 08:29

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Incremental blocking follow-up at 417c67798c9d4a939019fcd007f17ee7b21556f7 (observed base/main a8215b3ec314b8bc5cee152cdebbf4bb76ba4188). This is the remaining part of review 5694024409, not a new requirement. COMMENT is used because the authenticated account is also the PR author and cannot submit self REQUEST_CHANGES.

[P2] Malformed sidecar fields still abort unrelated Collect requests. Moving validation into the sidecar branch avoids the old legacy cyclic-YAML fixture, but skill_catalog.py:209–214 still raises during global owner enumeration. With valid sk and ok owners and a sidecar on sk containing either {"applicability":[]} or {"recommendations":"bad"}, both collect(ids=["sk","ok"]) and collect(ids=["ok"]) raise instead of preserving the valid owner. owners() calls the catalog before Collect's per-item error handling.

Smallest scoped correction: retain strict field validation but defer/isolate these content failures so the affected requested owner becomes an invalid omission, without aborting valid neighbors. Add mixed valid/invalid sidecar tests, including an invalid unrequested owner. Do not weaken validation merely to pass the fixture.

Verification: exact-head source extraction with isolated temporary fixtures reproduced the two field failures; no repository commands, installed dependencies, model or hardware experiments were run. Current declaration and SkillEval planning/publication pass; execution is skipped and no exact-head Ready results were found. GitHub still reports a merge conflict. This is not LGTM or #91 efficacy/goal acceptance.

@Dong1017
Dong1017 force-pushed the docs/skill-sidecar-batch1 branch from 417c677 to dff0f25 Compare October 29, 2026 09:22

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Re-review at head dff0f258669091dd75613aa9899d28a638c4921c, API base 5a46ad5a9e5bb93ec8111d47d97c7e341c476710, observed main a4ed530923fe59e9e5b0e9f44e1bf3fd303b84c5: hold for the existing P2; no LGTM.

Newly cleared: the merge conflict and missing Ready evidence. All four current-head Ready jobs pass. Inspected Python3.11 logs show Ruff success, 2511 passed, 11 skipped and 284 subtests on merge c3919f5 of this head into the stated base. The latest per-head policy succeeds; the earlier same-head declaration failure is superseded.

The remaining P2 from review5695248739 still applies. The catalog patch is byte-identical to417c: sidecar validation still runs through global skill_records()/owner enumeration before Collect's per-item handling. Thus an invalid unrequested owner's new fields can still abort a valid owner's collection. No duplicate inline finding is added.

The specific legacy cyclic-frontmatter failure is cleared, with its original mixed-owner fixture preserved. New catalog tests expect invalid sidecars to raise; they do not test valid-neighbor Collect behavior. Next owner/action: the existing author isolates content validation from identity inventory and adds requested/unrequested malformed-sidecar Collect cases while retaining strict validation.

SkillEval planning/publication succeeds with execution skipped and zero selected comparisons; this is not efficacy or #91 acceptance. Later main adds the Codex plugin without changing the assessed catalog/Collect path. Verification: static diff/caller/test inspection and hosted logs, no local repository execution, model or hardware run.

COMMENTED is used because the authenticated account is also the PR author and cannot submit a formal self REQUEST_CHANGES. This updates current-version integration/CI status and carries the existing blocker forward.

@Dong1017
Dong1017 force-pushed the docs/skill-sidecar-batch1 branch from dff0f25 to 94e7249 Compare October 29, 2026 10:14

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Source-focused re-review at head 94e7249c8e6f31784707d6a0cf84534e0f050569, API base a4ed530923fe59e9e5b0e9f44e1bf3fd303b84c5, observed main 7d1d82f55cda89842bd23ee2da91b521ee60eb08.

The previous P2 is cleared for this revision. owners() now inventories names through skill_directories(), leaving sidecar validation inside the requested resource's read path. The original cyclic-frontmatter fixture is retained. New tests cover mixed valid/invalid owners, an unrequested malformed owner, and strict rejection of malformed applicability/recommendations. I found no further blocking runtime correctness issue in the assessed scope.

Two nonblocking P3 presentation issues are attached: the Markdown view never consumes the collected workflow-contract/advice summary, and an N/A-only applicability declaration loses its N/A marker unless it also has scope. Discovery JSON recommendations are emitted correctly; these findings concern the reverse Markdown view.

Reviewed the changed enumeration/validation path and Collect caller, both generator diffs, related tests, the six sidecars against their procedure bodies, and generated maturity/state deltas. The five new sidecars explicitly remain candidate/not_run; no promotion was inferred.

All four Ready jobs pass. Inspected Python3.11 logs show Ruff success, 2529 passed, 11 skipped and 284 subtests on merge 98ad306 combining this head and the API base. The latest per-head policy succeeds; the earlier declaration failure is superseded. SkillEval plan/publish succeeds with execute skipped, not efficacy evidence.

GitHub still reports a conflict with actual main after #251. This review does not approve an unresolved combined tree or grant #91 acceptance. Existing owner: preserve both canonical source sets and regenerate derived outputs during reconciliation, then refresh affected checks. Verification was static source/CI-log inspection; no local repository code/tests, model or hardware execution. COMMENTED review; no formal self-approval or merge action.

Comment thread tools/build_skill_coverage.py
Comment thread tools/build_skill_coverage.py
@Dong1017
Dong1017 force-pushed the docs/skill-sidecar-batch1 branch from 94e7249 to 3c05727 Compare October 29, 2026 12:06

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Incremental re-review at head 3c057270864a6be3e558a9869ec6f710d8e8810d, API base 7d1d82f55cda89842bd23ee2da91b521ee60eb08, and actual main ab03f3ffb8f2e5bc02c304828c5c41890eef673e.

Both P3 findings from review 5696532516 are cleared. The rendered Conditions column consumes the contract keys/advice count; N/A dimensions render independently of scope. The new tests inspect rendered rows, including the N/A-only case. The catalog, reader and index-generator files are byte-identical to the previously reviewed 94e7249c8e6f31784707d6a0cf84534e0f050569, so the former per-owner Collect P2 remains cleared. No additional blocking source finding in this incremental scope.

All four Ready jobs pass. The inspected Python3.11 log records Ruff success, 2531 passed, 11 skipped and 284 subtests. Checked content was merge 9efabecbac227b88a91f74039da5ef14534a2455, whose parents are the stated API base and reviewed head. The latest per-head declaration policy succeeds and supersedes the earlier same-head failure. SkillEval planned/published successfully, with execution skipped and zero selected comparisons; its 93 uncovered paths are not efficacy passes.

Hold for integration with actual main; no merge-ready LGTM. The API still reports clean against the older base, but the tested merge does not contain the new Lithos knowledge delivery on actual main. Both sides rewrite the same generated provenance lines: for example, assess-serving-preemption.json changes sources[0].commit from 2f72a0ccabd87eefdc76223c9b82f7091c379da1 to b6ae0561e9091b5428cfed0f917eba0c27b5a12c in this PR, versus 26743abcfae48cd6223bd757e74f193d97e3e5a7 on main. See the PR source delta and main advance. These need reconciliation rather than treating the older clean merge as current-main evidence.

Next for the existing PR/#91 owner: preserve the canonical Lithos and workflow sources, reconcile current main, regenerate discovery/coverage outputs, update the truthful declaration for the resulting head, and refresh affected checks. This clears the reviewed source findings; it does not accept the wider #91 tracker or demonstrate model/hardware benefit.

Verification: source/blob comparison, existing discussion and hosted CI logs only; no local repository code/tests, model or hardware execution. COMMENTED is used because the authenticated account is also the PR author and cannot submit formal self-approval. No merge action.

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

增量静态 review(head 3c057270864a6be3e558a9869ec6f710d8e8810d;base 7d1d82f55cda89842bd23ee2da91b521ee60eb08):本轮仅发现一项未被先前讨论覆盖的 P3 适用范围呈现不一致,已定位到新增的 conditions() 行内。此前两项 Markdown 呈现意见已有修复回复,本轮不重复;不评价整个 #91 的交付或合入状态。依据是当前 diff、skill_catalog._applicability 允许值形状、调用链及覆盖视图测试的静态检查;未运行代码、测试、模型或硬件实验。

Comment thread tools/build_skill_coverage.py

@Dong1017 Dong1017 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

LGTM with nits for the reviewed source changes at 3c057270864a6be3e558a9869ec6f710d8e8810d.

Please address the remaining nonblocking list-valued scope rendering issue, resolve the conflicts with main ab03f3ffb8f2e5bc02c304828c5c41890eef673e, and regenerate the affected index/coverage outputs. Refresh the applicable checks on the resulting head and recheck the integration delta.

The assessed API base is 7d1d82f55cda89842bd23ee2da91b521ee60eb08; detailed source and existing-CI evidence is in the preceding review. The nit is nonblocking for this source-review conclusion. The conflicted combined tree still needs the author's integration work before merge.

…mendations

Batch 1 of the InferMatrixLab#91 Round 2 plan settles the two contract decisions that every
later batch depends on, and proves them on the six registered `workflows/`
skills.

Reuse the existing sidecar envelope rather than adding a parallel record
system. `applicability` gains four keys that describe a procedure instead of
hardware: `input_contract`, `produced_artifact`, `failure_modes` and
`refusal_point`. No workflow sidecar declares `hardware`, because a process
skill has no device dimension. The five skills that had no sidecar and the
existing `npu-skill-factory` sidecar now share one shape.

`recommendations` becomes a sidecar field. The generator emitted the same two
sentences for all 77 records and no owner could contribute. It now emits the
owner's list when present, keeps the previous text when the field is absent,
and honours an explicit `[]` without falling back: an empty list states that
there is no procedure-specific advice.

The coverage view now collects `applicability` and distinguishes three states
that previously rendered as one blank cell: absent or empty (`unknown`, counted
as a new `no-applicability` gap), a declared scope, and a dimension marked
`not-applicable`, which is a reasoned statement and does not count as coverage.
Two columns carry the result. `Applicability` holds the declared scope, and
`Conditions` renders the typed workflow keys with the collected advice count, so
changing a contract field or an owner's recommendations is visible in the row
rather than only in the document digest. N/A renders independently of scope: a
declaration that marks a dimension not-applicable keeps that marker even when it
names no scope. A list-valued scope, which the catalog accepts like any
other applicability key, renders as its joined entries rather than as
missing.

`skill_catalog` validates both new fields on the sidecar. The check runs when
an owner is read, not while identities are enumerated: `owners()` now takes
registered names from `skill_directories()`, which resolves paths and entry
files only. A malformed sidecar therefore reaches Collect's per-item handler
and becomes that owner's `invalid` omission instead of aborting unrelated
requested owners. Validation itself is unchanged, so a malformed owner still
fails. `tags` keeps its existing contract on the effective record.

Generating the index also required a pre-existing Windows fix: `build_index`
passed all 545 skill input paths on one command line to `git diff`, which
exceeds the process-argument limit and failed with `WinError 206`. It now
compares the whole-tree diff and intersects in Python.

No evaluation, verdict or promotion. `status` stays `candidate` and
`empirical_validation` is unchanged for all 77 skills. The 41 empty
`applicability` fields belong to batches 2 through 4; layer decisions are
batch 5.

Agent-assisted-by: Claude / Opus 5.5 [effort=xhigh] (sidecar shape, generator and view changes)
Signed-off-by: Dong1017 <55723162+Dong1017@users.noreply.github.com>
@Dong1017
Dong1017 force-pushed the docs/skill-sidecar-batch1 branch from 3c05727 to 5076062 Compare October 29, 2026 13:22
@Dong1017
Dong1017 merged commit 401ee8a into InferMatrixLab:main Oct 29, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:knowledge Knowledge line: packs, skill library, knowledge admission

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant