Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ jobs:
tests.test_adaptive_evidence_contracts \
tests.test_adaptive_environment_profile \
tests.test_adaptive_bundle_registry \
tests.test_adaptive_algorithm_scout \
tests.test_adaptive_managed_output \
tests.test_adaptive_qualification \
tests.test_adaptive_recommendation \
Expand Down Expand Up @@ -249,6 +250,7 @@ jobs:
tests.test_adaptive_vision_roadmap_generator \
tests.test_adaptive_environment_profile \
tests.test_adaptive_bundle_registry \
tests.test_adaptive_algorithm_scout \
tests.test_adaptive_managed_output \
tests.test_adaptive_qualification \
tests.test_adaptive_recommendation \
Expand Down Expand Up @@ -332,6 +334,7 @@ jobs:
tests/test_generated_cli_reference.py \
tests/test_ssot_capability_coverage.py \
tests/test_adaptive_vision_roadmap_generator.py \
tests/test_adaptive_algorithm_scout.py \
tests/test_adaptive_evidence_activation.py \
tests/test_adaptive_qualification.py \
tests/test_adaptive_recommendation.py \
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ jobs:
tests.test_adaptive_evidence_activation \
tests.test_adaptive_environment_profile \
tests.test_adaptive_bundle_registry \
tests.test_adaptive_algorithm_scout \
tests.test_adaptive_managed_output \
tests.test_adaptive_recommendation \
tests.test_adaptive_processing \
Expand All @@ -69,6 +70,8 @@ jobs:
required = {
"yolozu/data/manifest/adaptive_vision_roadmap.json",
"yolozu/data/schemas/adaptive_vision_roadmap.schema.json",
"yolozu/data/schemas/algorithm_scout_sources.schema.json",
"yolozu/data/schemas/algorithm_scout_report.schema.json",
"yolozu/data/schemas/local_artifact_inventory.schema.json",
"yolozu/data/schemas/qualification_report.schema.json",
"yolozu/data/schemas/evidence_activation_record.schema.json",
Expand Down Expand Up @@ -198,6 +201,7 @@ jobs:
tests.test_adaptive_evidence_activation \
tests.test_adaptive_environment_profile \
tests.test_adaptive_bundle_registry \
tests.test_adaptive_algorithm_scout \
tests.test_adaptive_managed_output \
tests.test_adaptive_recommendation \
tests.test_adaptive_processing \
Expand All @@ -222,6 +226,8 @@ jobs:
required = {
"yolozu/data/manifest/adaptive_vision_roadmap.json",
"yolozu/data/schemas/adaptive_vision_roadmap.schema.json",
"yolozu/data/schemas/algorithm_scout_sources.schema.json",
"yolozu/data/schemas/algorithm_scout_report.schema.json",
"yolozu/data/schemas/local_artifact_inventory.schema.json",
"yolozu/data/schemas/qualification_report.schema.json",
"yolozu/data/schemas/evidence_activation_record.schema.json",
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add Experimental dry-run-by-default pinned local image processing through MCP.
- Verify adaptive routing boundaries across source, candidate artifacts, and installed MCP calls.
- Register the existing model zoo as non-promoted adaptive Candidate baselines.
- Add an Experimental bounded official-source algorithm scout and nonselectable candidate inbox.

### Fixed
- Keep repository-wrapper prediction and TTA/TTT log paths anchored to the checkout when invoked from another working directory.
Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,12 @@ non-promoted Candidate baselines matching the existing model zoo: YOLOX-S,
Detectron2 Faster R-CNN R50-FPN 1x, and MMDetection Faster R-CNN R50-FPN 1x.
Their pinned weights are fetchable metadata, but their adaptive execution binding
is explicitly unbound. Loading and validation do not import a model runtime.
Experimental `yolozu scout-algorithms` now validates one canonical official-source
allowlist and, only with `--collect`, writes a dated candidate inbox. The default
command is a network-free, write-free plan. Collected pages are untrusted metadata;
raw documents are not retained, and the inbox cannot be loaded as an
AlgorithmBundle registry or used as qualification, support, recommendation,
adoption, or promotion evidence.
Explicit workspace catalogs remain operator-asserted and nonselectable. The Experimental
`yolozu qualify-image-pipeline` command now implements pinned no-follow input
and asset preflight, a frozen repeat/soak protocol, bounded child-process
Expand Down Expand Up @@ -164,6 +170,8 @@ qualification evidence or proof of human adoption.

The [baseline bundle registry report](reports/adaptive_baseline_bundle_registry_2026-08-26.md)
records the current three-way state boundary. The earlier
[algorithm scout foundation report](reports/adaptive_algorithm_scout_foundation_2026-08-26.md)
records the monitored-source, retention, parser, and nonselection boundaries. The earlier
[installed-artifact verification report](reports/adaptive_routing_installed_verification_2026-08-26.md)
checks the same boundary from source, sdist, wheel, and installed MCP calls. Its
positive selector and executor cases use internal fixtures; they do not qualify a
Expand Down
9 changes: 8 additions & 1 deletion Readme_jp.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,12 @@ privacy-safe な live `environment_profile` を返します。probe failure は
MMDetection Faster R-CNN R50-FPN 1xの3件を、未昇格のCandidate baselineとして
登録しています。固定済みweightは取得可能なmetadataですが、adaptive execution
bindingは明示的にunboundです。model runtimeをimportせずに検証して読み込めます。明示したworkspace
catalogはoperator-assertedのままで、選択対象にはなりません。POSIX専用の
catalogはoperator-assertedのままで、選択対象にはなりません。
Experimental `yolozu scout-algorithms` はcanonicalなofficial-source allowlistだけを
検証し、`--collect`を明示した場合だけ日付付きcandidate inboxを作ります。defaultは
network-freeかつwrite-freeのplanです。取得した内容はuntrusted metadataとして扱い、raw
documentは保持しません。このinboxをAlgorithmBundle registryとしてloadしたり、qualification、
support、recommendation、adoption、promotionの証拠として使うことはできません。POSIX専用の
Experimental `yolozu qualify-image-pipeline` commandは、pinned no-follow input/asset
preflight、固定したrepeat/soak protocol、child processのbounded cancellation、
unactivatedな`qualification_report.json`のatomic publicationを実装しています。
Expand Down Expand Up @@ -162,6 +167,8 @@ qualification evidenceにもhuman adoptionの証明にもなりません。

[baseline bundle registry report](reports/adaptive_baseline_bundle_registry_2026-08-26.md)
に現在の3段階の境界を記録しています。先行する
[algorithm scout foundation report](reports/adaptive_algorithm_scout_foundation_2026-08-26.md)
にはmonitored-source、retention、parser、nonselectionの境界を記録しています。先行する
[installed-artifact verification report](reports/adaptive_routing_installed_verification_2026-08-26.md)
では、source、sdist、wheel、installed MCP callで同じ境界を確認しています。positiveな
selector/executor caseは内部fixtureによるもので、実bundleのqualificationやselectedな
Expand Down
3 changes: 3 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ The environment-qualified local image-processing program targets an Experimental
unbound execution. The evidence stream and runner maps are empty, so the
default response records `maturity_disallowed`, abstains, and cannot run a real
adaptive model.
- Monitored-source inbox: [`algorithm_intake/README.md`](algorithm_intake/README.md).
`yolozu scout-algorithms` is network-free and write-free by default. Explicit
collection produces only a dated nonselectable candidate report.

## Primary Focus

Expand Down
10 changes: 10 additions & 0 deletions docs/adaptive_image_routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,16 @@ fails with an actionable error and does
not create synthetic or no-op qualification evidence. It is not a selector,
model adapter, or general image-processing capability.

The Experimental `yolozu scout-algorithms` surface is a separate candidate inbox.
It accepts only `docs/algorithm_intake/sources.json`. Without `--collect`, it
validates that file and prints a bounded JSON plan without network access or writes.
Collection uses credential-free HTTPS on port 443 for the exact scheme/host/path
allowlist, retains summaries and provenance rather than raw source documents, and
records unavailable fields as `unknown`. A failed or missed source remains explicit.
The report kind is not an AlgorithmBundle registry interface contract, and the
selector cannot load it. Discovery therefore cannot register, qualify, recommend,
execute, or promote a model.

`selected` means that one registered pipeline survived every hard filter, matched
one active trusted qualification record for the exact measured configuration, and
ranked first under the requested policy. `abstained` is a valid routing outcome when
Expand Down
53 changes: 53 additions & 0 deletions docs/algorithm_intake/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Experimental algorithm scout

`yolozu scout-algorithms` is a maintainer-only monitored-source inbox. It does
not search the whole web or establish which algorithm is latest or best. The
only accepted source file is `docs/algorithm_intake/sources.json`.

The safe default validates the allowlist and prints a bounded JSON plan. It does
not open a network connection or create the output directory.

```bash
yolozu scout-algorithms \
--sources docs/algorithm_intake/sources.json \
--output-dir reports/algorithm_scout \
--collection-date 2026-08-26 \
--trigger workflow_dispatch
```

`--collect` enables the only network and write path. Collection accepts exact
allowlisted HTTPS scheme/host/path records on port 443. It rejects credentials,
queries, fragments, IP literals, non-public DNS or peer addresses, and redirects
outside the same explicit allowlist. No caller headers, cookies, or tokens are
accepted. TLS 1.2 is the minimum protocol version; normal certificate-chain,
hostname, and SNI validation remain enabled. A source gets 30 seconds, the run
gets 12 minutes, and the surrounding
15-minute workflow must keep three minutes for report finalization and failure
handling.

Fetched HTML, text, JSON, and PDF are untrusted input. The parser applies the
document, process, memory, time, and byte caps recorded in the Bead and report.
It never follows URLs found in fetched content, executes code, downloads weights,
installs packages, or copies raw pages into the repository. The dated managed
output retains bounded summaries, content provenance, explicit failed or missed
status, and `unknown` for unavailable metadata. A prior candidate absent from the
current response is retained only as `historical`, never relabeled as freshly
collected.

Exit codes are:

- `0`: a valid report with no enabled-source failure;
- `3`: a valid report with at least one failed or missed source;
- `2`: invalid or unsafe input rejected before collection; and
- `1`: bounded internal or finalization failure.

Retention follows repository history policy for the dated metadata reports. Raw
source documents, headers, response bodies, local paths, credentials, and parser
temporary files are not retained. Repeated runs merge candidate history and
deduplicate by source URL plus version or revision.

The output kind is `yolozu_algorithm_scout_report` with
`selectability=inbox_only`. It is deliberately different from the AlgorithmBundle
registry interface contract. A later reviewed screening and registry action is
required before any candidate can enter lifecycle, qualification, selection, or
execution paths.
126 changes: 126 additions & 0 deletions docs/algorithm_intake/sources.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
{
"kind": "yolozu_algorithm_scout_sources",
"schema_version": 1,
"sources": [
{
"source_id": "detectron2-releases",
"enabled": true,
"location": {
"scheme": "https",
"host": "api.github.com",
"path": "/repos/facebookresearch/detectron2/releases"
},
"redirect_allowlist": [],
"identity": {
"project": "facebookresearch/detectron2",
"model": "release inbox"
},
"tasks": [
"object_detection",
"instance_segmentation"
],
"availability": {
"local": "unknown",
"hosted": "unknown"
},
"license": {
"status": "unknown",
"expression": "unknown"
},
"weights": {
"status": "unknown"
},
"runtime_hints": []
},
{
"source_id": "mmdetection-releases",
"enabled": true,
"location": {
"scheme": "https",
"host": "api.github.com",
"path": "/repos/open-mmlab/mmdetection/releases"
},
"redirect_allowlist": [],
"identity": {
"project": "open-mmlab/mmdetection",
"model": "release inbox"
},
"tasks": [
"object_detection",
"instance_segmentation"
],
"availability": {
"local": "unknown",
"hosted": "unknown"
},
"license": {
"status": "unknown",
"expression": "unknown"
},
"weights": {
"status": "unknown"
},
"runtime_hints": []
},
{
"source_id": "ultralytics-releases",
"enabled": true,
"location": {
"scheme": "https",
"host": "api.github.com",
"path": "/repos/ultralytics/ultralytics/releases"
},
"redirect_allowlist": [],
"identity": {
"project": "ultralytics/ultralytics",
"model": "release inbox"
},
"tasks": [
"object_detection",
"instance_segmentation",
"pose_estimation"
],
"availability": {
"local": "unknown",
"hosted": "unknown"
},
"license": {
"status": "unknown",
"expression": "unknown"
},
"weights": {
"status": "unknown"
},
"runtime_hints": []
},
{
"source_id": "yolox-releases",
"enabled": true,
"location": {
"scheme": "https",
"host": "api.github.com",
"path": "/repos/Megvii-BaseDetection/YOLOX/releases"
},
"redirect_allowlist": [],
"identity": {
"project": "Megvii-BaseDetection/YOLOX",
"model": "release inbox"
},
"tasks": [
"object_detection"
],
"availability": {
"local": "unknown",
"hosted": "unknown"
},
"license": {
"status": "unknown",
"expression": "unknown"
},
"weights": {
"status": "unknown"
},
"runtime_hints": []
}
]
}
6 changes: 4 additions & 2 deletions docs/generated/cli_reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ Keep narrative docs short and link here for the full command surface.
## Top-level `yolozu --help`

```text
usage: yolozu [-h] [--version] {guide,doctor,dr,list,fetch,export,export-dataset,predict-images,eval-coco,calibrate,eval-long-tail,long-tail-recipe,benchmark,parity,predictions,validate,eval-instance-seg,onnxrt,resources,migrate,import,train,train-orchestrate,test,demo,qualify-image-pipeline,activate-qualification-evidence,registry,completion,comp} ...
usage: yolozu [-h] [--version] {guide,doctor,dr,list,fetch,export,export-dataset,predict-images,eval-coco,calibrate,eval-long-tail,long-tail-recipe,benchmark,parity,predictions,validate,eval-instance-seg,onnxrt,resources,migrate,import,train,train-orchestrate,test,demo,qualify-image-pipeline,activate-qualification-evidence,scout-algorithms,registry,completion,comp} ...

positional arguments:
{guide,doctor,dr,list,fetch,export,export-dataset,predict-images,eval-coco,calibrate,eval-long-tail,long-tail-recipe,benchmark,parity,predictions,validate,eval-instance-seg,onnxrt,resources,migrate,import,train,train-orchestrate,test,demo,qualify-image-pipeline,activate-qualification-evidence,registry,completion,comp}
{guide,doctor,dr,list,fetch,export,export-dataset,predict-images,eval-coco,calibrate,eval-long-tail,long-tail-recipe,benchmark,parity,predictions,validate,eval-instance-seg,onnxrt,resources,migrate,import,train,train-orchestrate,test,demo,qualify-image-pipeline,activate-qualification-evidence,scout-algorithms,registry,completion,comp}
guide Show beginner-friendly routes and copy-paste commands.
doctor (dr) Check the environment. Use --explain for beginner-friendly next actions.
list List registries and built-in catalogs.
Expand Down Expand Up @@ -38,6 +38,7 @@ positional arguments:
Measure one exact local image bundle (Experimental).
activate-qualification-evidence
Review one exact qualification report; dry-run unless --approve is set.
scout-algorithms Plan or collect a bounded monitored-source candidate inbox (Experimental).
registry AI-first tool registry: list/show/validate/run tools from the canonical manifest.
completion (comp) Print shell completion script (bash/zsh).

Expand Down Expand Up @@ -284,6 +285,7 @@ Contact: develop@toppymicros.com
| run_trt_pipeline | experimental | tools/run_trt_pipeline.py | Orchestrate the YOLO26 TensorRT pipeline (engine build → predictions export → parity → eval_suite → latency report). |
| run_ttt_compare | research | tools/run_ttt_compare.py | Run a fail-closed seeded TTT comparison with full checkpoint preflight, real COCO evaluation, adaptation-cost counters, and a concise detector-response boilerplate for selected foreground class/box consistency. |
| run_ttt_evidence_suite | research | tools/run_ttt_evidence_suite.py | Run and aggregate a fail-closed five-method clean/shifted TTT matrix for at least three seeds. |
| scout_algorithms | experimental | tools/scout_algorithms.py | Plan by default or collect a bounded read-only Experimental inbox from exact official HTTPS sources; discovered data cannot execute, download weights, mutate the bundle registry, qualify, or promote anything. |
| smoke | stable | scripts/smoke.sh | Run one-command offline smoke flow (doctor -> validate dataset -> validate predictions -> eval-coco dry-run -> synthgen intake smoke) with optional deep walkthrough checks. |
| smoke_synthgen | experimental | tools/smoke_synthgen.py | Run deterministic SynthGen intake smoke, or generate and qualify a fresh cross-repo handoff with strict QA and loader checks. |
| summarize_bop19_pose_evidence | research | tools/summarize_bop19_pose_evidence.py | Combine official BOP19 VSD/MSSD/MSPD scores with matched rotation, translation, ADD, ADD-S, symmetry-aware pose success, and optional independent reproduction. |
Expand Down
Loading