SKILL.md v10 compliance
Supplier ISO Enumerate
List suppliers and decide who needs ISO certificate collection.
No reviews yet 0 installs
isosuppliersenumeratecompliance
Versions
- v10 # Changelog ## v1.8 - SKILL.md no longer mentions the retired `dispatch_batch_run` tool. ## v1.7 - A `certifications.json` that reports zero certifications (a `none_found` collect) is **never** fresh: it is re-collected on the next run instead of being skipped for 7 days. Discovery can fail transiently — on qa1 an unusable `websiteUrl` (`3m` for 3M UK - WINTERTHUR TECHNOLOGY UK) wrote an empty result that then suppressed re-collection for a week. - `_website_url` scheme-repairs bare domains (`3m.com` → `https://3m.com`). Non-URL junk (`3m`) is left in place and stays `ready` — collect now falls back to name/accreditation-registry discovery for it. ## v1.6 - Wait for `/organization/local/suppliers` based on **progress** rather than a flat deadline. The old 90s timeout could not fit every org: on qa1 a 50-supplier tree took ~12 minutes to materialise, so the skill failed repeatedly on a perfectly healthy tree and the agent concluded the backend was down. The wait now extends while the entry count keeps growing (ceiling 900s) and gives up as soon as it stalls, so a genuinely broken tree is still reported promptly. ## v1.5 - Dispatch the resolve + collect rounds via `qb.batch_dispatch` (agent-control-plane) instead of the retiring `dispatch_batch_run` MCP tool. Fan-out, sharding, retry, and reconcile now live in the control-plane; the skill only enumerates + seeds the batch. - `reduce_after_resolve.py` confirms the resolve run via `qb.batch_status`. ## v1.4 - `dispatch.py` now passes an explicit small `shardSize` (4) to `dispatch_batch_run`. Each ISO collect item is heavy (Talos files-extract + searches + scrapes + downloads), so the server default (25) put all suppliers in one shard, which never finished within the sandbox tool timeout — no terminal shard was written and the report never fired. Small shards complete within budget and fan out in parallel. ## v1.3 - Add `lib/dispatch_resolve.py`: dispatches a background RESOLVE batch for the manifest's `needs_identity` ids (`shardSkillRef=supplier-resolve-identity`, `reduceSkillRef=supplier-iso-enumerate`), replacing the serial foreground identity resolve. - Add `lib/reduce_after_resolve.py`: this skill is now the resolve round's reduce step — it gates on the reconciled resolve ledger, re-enumerates (identities now on disk), and dispatches the collect round, chaining the two fan-outs. ## v1.2 - Add bundled `lib/dispatch.py`: reads the manifest's `ready` ids and dispatches the batch run via the broker MCP gateway (`qonstrue_broker.mcp_call("platform", "dispatch_batch_run", …)`) — the DISPATCH step now runs a bundled script instead of a host-side tool, so it works for interactive and background agents alike (broker-mediated dispatch, mirroring `batch-reconcile`'s retry path). ## v1.1 - Hard requirement: execute bundled `lib/suppliers.py` only; document that manifesto `suppliers` is a JSON array (not a map). ## v1 - Initial release: enumerate `/organization/local/suppliers`, apply website + 7-day certifications freshness skips, write manifesto. - Mark `needs_identity` when `identity.json` is missing but `resource.json` exists (resolve skill first). 10/13/2026
- v9 # Changelog ## v1.7 - A `certifications.json` that reports zero certifications (a `none_found` collect) is **never** fresh: it is re-collected on the next run instead of being skipped for 7 days. Discovery can fail transiently — on qa1 an unusable `websiteUrl` (`3m` for 3M UK - WINTERTHUR TECHNOLOGY UK) wrote an empty result that then suppressed re-collection for a week. - `_website_url` scheme-repairs bare domains (`3m.com` → `https://3m.com`). Non-URL junk (`3m`) is left in place and stays `ready` — collect now falls back to name/accreditation-registry discovery for it. ## v1.6 - Wait for `/organization/local/suppliers` based on **progress** rather than a flat deadline. The old 90s timeout could not fit every org: on qa1 a 50-supplier tree took ~12 minutes to materialise, so the skill failed repeatedly on a perfectly healthy tree and the agent concluded the backend was down. The wait now extends while the entry count keeps growing (ceiling 900s) and gives up as soon as it stalls, so a genuinely broken tree is still reported promptly. ## v1.5 - Dispatch the resolve + collect rounds via `qb.batch_dispatch` (agent-control-plane) instead of the retiring `dispatch_batch_run` MCP tool. Fan-out, sharding, retry, and reconcile now live in the control-plane; the skill only enumerates + seeds the batch. - `reduce_after_resolve.py` confirms the resolve run via `qb.batch_status`. ## v1.4 - `dispatch.py` now passes an explicit small `shardSize` (4) to `dispatch_batch_run`. Each ISO collect item is heavy (Talos files-extract + searches + scrapes + downloads), so the server default (25) put all suppliers in one shard, which never finished within the sandbox tool timeout — no terminal shard was written and the report never fired. Small shards complete within budget and fan out in parallel. ## v1.3 - Add `lib/dispatch_resolve.py`: dispatches a background RESOLVE batch for the manifest's `needs_identity` ids (`shardSkillRef=supplier-resolve-identity`, `reduceSkillRef=supplier-iso-enumerate`), replacing the serial foreground identity resolve. - Add `lib/reduce_after_resolve.py`: this skill is now the resolve round's reduce step — it gates on the reconciled resolve ledger, re-enumerates (identities now on disk), and dispatches the collect round, chaining the two fan-outs. ## v1.2 - Add bundled `lib/dispatch.py`: reads the manifest's `ready` ids and dispatches the batch run via the broker MCP gateway (`qonstrue_broker.mcp_call("platform", "dispatch_batch_run", …)`) — the DISPATCH step now runs a bundled script instead of a host-side tool, so it works for interactive and background agents alike (broker-mediated dispatch, mirroring `batch-reconcile`'s retry path). ## v1.1 - Hard requirement: execute bundled `lib/suppliers.py` only; document that manifesto `suppliers` is a JSON array (not a map). ## v1 - Initial release: enumerate `/organization/local/suppliers`, apply website + 7-day certifications freshness skips, write manifesto. - Mark `needs_identity` when `identity.json` is missing but `resource.json` exists (resolve skill first). 9/22/2026
- v8 # Changelog ## v1.6 - Wait for `/organization/local/suppliers` based on **progress** rather than a flat deadline. The old 90s timeout could not fit every org: on qa1 a 50-supplier tree took ~12 minutes to materialise, so the skill failed repeatedly on a perfectly healthy tree and the agent concluded the backend was down. The wait now extends while the entry count keeps growing (ceiling 900s) and gives up as soon as it stalls, so a genuinely broken tree is still reported promptly. ## v1.5 - Dispatch the resolve + collect rounds via `qb.batch_dispatch` (agent-control-plane) instead of the retiring `dispatch_batch_run` MCP tool. Fan-out, sharding, retry, and reconcile now live in the control-plane; the skill only enumerates + seeds the batch. - `reduce_after_resolve.py` confirms the resolve run via `qb.batch_status`. ## v1.4 - `dispatch.py` now passes an explicit small `shardSize` (4) to `dispatch_batch_run`. Each ISO collect item is heavy (Talos files-extract + searches + scrapes + downloads), so the server default (25) put all suppliers in one shard, which never finished within the sandbox tool timeout — no terminal shard was written and the report never fired. Small shards complete within budget and fan out in parallel. ## v1.3 - Add `lib/dispatch_resolve.py`: dispatches a background RESOLVE batch for the manifest's `needs_identity` ids (`shardSkillRef=supplier-resolve-identity`, `reduceSkillRef=supplier-iso-enumerate`), replacing the serial foreground identity resolve. - Add `lib/reduce_after_resolve.py`: this skill is now the resolve round's reduce step — it gates on the reconciled resolve ledger, re-enumerates (identities now on disk), and dispatches the collect round, chaining the two fan-outs. ## v1.2 - Add bundled `lib/dispatch.py`: reads the manifest's `ready` ids and dispatches the batch run via the broker MCP gateway (`qonstrue_broker.mcp_call("platform", "dispatch_batch_run", …)`) — the DISPATCH step now runs a bundled script instead of a host-side tool, so it works for interactive and background agents alike (broker-mediated dispatch, mirroring `batch-reconcile`'s retry path). ## v1.1 - Hard requirement: execute bundled `lib/suppliers.py` only; document that manifesto `suppliers` is a JSON array (not a map). ## v1 - Initial release: enumerate `/organization/local/suppliers`, apply website + 7-day certifications freshness skips, write manifesto. - Mark `needs_identity` when `identity.json` is missing but `resource.json` exists (resolve skill first). 8/27/2026
- v7 # Changelog ## v1.5 - Dispatch the resolve + collect rounds via `qb.batch_dispatch` (agent-control-plane) instead of the retiring `dispatch_batch_run` MCP tool. Fan-out, sharding, retry, and reconcile now live in the control-plane; the skill only enumerates + seeds the batch. - `reduce_after_resolve.py` confirms the resolve run via `qb.batch_status`. ## v1.4 - `dispatch.py` now passes an explicit small `shardSize` (4) to `dispatch_batch_run`. Each ISO collect item is heavy (Talos files-extract + searches + scrapes + downloads), so the server default (25) put all suppliers in one shard, which never finished within the sandbox tool timeout — no terminal shard was written and the report never fired. Small shards complete within budget and fan out in parallel. ## v1.3 - Add `lib/dispatch_resolve.py`: dispatches a background RESOLVE batch for the manifest's `needs_identity` ids (`shardSkillRef=supplier-resolve-identity`, `reduceSkillRef=supplier-iso-enumerate`), replacing the serial foreground identity resolve. - Add `lib/reduce_after_resolve.py`: this skill is now the resolve round's reduce step — it gates on the reconciled resolve ledger, re-enumerates (identities now on disk), and dispatches the collect round, chaining the two fan-outs. ## v1.2 - Add bundled `lib/dispatch.py`: reads the manifest's `ready` ids and dispatches the batch run via the broker MCP gateway (`qonstrue_broker.mcp_call("platform", "dispatch_batch_run", …)`) — the DISPATCH step now runs a bundled script instead of a host-side tool, so it works for interactive and background agents alike (broker-mediated dispatch, mirroring `batch-reconcile`'s retry path). ## v1.1 - Hard requirement: execute bundled `lib/suppliers.py` only; document that manifesto `suppliers` is a JSON array (not a map). ## v1 - Initial release: enumerate `/organization/local/suppliers`, apply website + 7-day certifications freshness skips, write manifesto. - Mark `needs_identity` when `identity.json` is missing but `resource.json` exists (resolve skill first). 7/31/2026
- v6 # Changelog ## v1.5 - Dispatch the resolve + collect rounds via `qb.batch_dispatch` (agent-control-plane) instead of the retiring `dispatch_batch_run` MCP tool. Fan-out, sharding, retry, and reconcile now live in the control-plane; the skill only enumerates + seeds the batch. - `reduce_after_resolve.py` confirms the resolve run via `qb.batch_status`. ## v1.4 - `dispatch.py` now passes an explicit small `shardSize` (4) to `dispatch_batch_run`. Each ISO collect item is heavy (Talos files-extract + searches + scrapes + downloads), so the server default (25) put all suppliers in one shard, which never finished within the sandbox tool timeout — no terminal shard was written and the report never fired. Small shards complete within budget and fan out in parallel. ## v1.3 - Add `lib/dispatch_resolve.py`: dispatches a background RESOLVE batch for the manifest's `needs_identity` ids (`shardSkillRef=supplier-resolve-identity`, `reduceSkillRef=supplier-iso-enumerate`), replacing the serial foreground identity resolve. - Add `lib/reduce_after_resolve.py`: this skill is now the resolve round's reduce step — it gates on the reconciled resolve ledger, re-enumerates (identities now on disk), and dispatches the collect round, chaining the two fan-outs. ## v1.2 - Add bundled `lib/dispatch.py`: reads the manifest's `ready` ids and dispatches the batch run via the broker MCP gateway (`qonstrue_broker.mcp_call("platform", "dispatch_batch_run", …)`) — the DISPATCH step now runs a bundled script instead of a host-side tool, so it works for interactive and background agents alike (broker-mediated dispatch, mirroring `batch-reconcile`'s retry path). ## v1.1 - Hard requirement: execute bundled `lib/suppliers.py` only; document that manifesto `suppliers` is a JSON array (not a map). ## v1 - Initial release: enumerate `/organization/local/suppliers`, apply website + 7-day certifications freshness skips, write manifesto. - Mark `needs_identity` when `identity.json` is missing but `resource.json` exists (resolve skill first). 7/30/2026
- v5 # Changelog ## v1.3 - Add `lib/dispatch_resolve.py`: dispatches a background RESOLVE batch for the manifest's `needs_identity` ids (`shardSkillRef=supplier-resolve-identity`, `reduceSkillRef=supplier-iso-enumerate`), replacing the serial foreground identity resolve. - Add `lib/reduce_after_resolve.py`: this skill is now the resolve round's reduce step — it gates on the reconciled resolve ledger, re-enumerates (identities now on disk), and dispatches the collect round, chaining the two fan-outs. ## v1.2 - Add bundled `lib/dispatch.py`: reads the manifest's `ready` ids and dispatches the batch run via the broker MCP gateway (`qonstrue_broker.mcp_call("platform", "dispatch_batch_run", …)`) — the DISPATCH step now runs a bundled script instead of a host-side tool, so it works for interactive and background agents alike (broker-mediated dispatch, mirroring `batch-reconcile`'s retry path). ## v1.1 - Hard requirement: execute bundled `lib/suppliers.py` only; document that manifesto `suppliers` is a JSON array (not a map). ## v1 - Initial release: enumerate `/organization/local/suppliers`, apply website + 7-day certifications freshness skips, write manifesto. - Mark `needs_identity` when `identity.json` is missing but `resource.json` exists (resolve skill first). 7/22/2026
- v4 # Changelog ## v1.1 - Hard requirement: execute bundled `lib/suppliers.py` only; document that manifesto `suppliers` is a JSON array (not a map). ## v1 - Initial release: enumerate `/organization/local/suppliers`, apply website + 7-day certifications freshness skips, write manifesto. - Mark `needs_identity` when `identity.json` is missing but `resource.json` exists (resolve skill first). 7/16/2026
- v3 # Changelog ## v1 - Initial release: enumerate `/organization/local/suppliers`, apply website + 7-day certifications freshness skips, write manifest. - Mark `needs_identity` when `identity.json` is missing but `resource.json` exists (resolve skill first). 7/16/2026
- v1 # Changelog ## v1 - Initial release: enumerate `/organization/local/suppliers`, apply website + 7-day certifications freshness skips, write manifest. - Mark `needs_identity` when `identity.json` is missing but `resource.json` exists (resolve skill first). 7/15/2026