Repository navigation
Measure daily native skill use and test the security-audit trigger cue - #970
Conversation
3f562fa to
90fab19
Compare
|
Dependency limit exceeded — report not shown. This pull request scan exceeded the 10,000-dependency limit applied to this scan, so the results are incomplete and may be inaccurate. To avoid reporting false positives, Socket has not posted a report. Upgrade your plan to raise the dependency limit and get complete reports, or view the partial scan in the dashboard. Socket is always free for open source. If this is a non-commercial open source project, contact us to request a free Team account. |
7a1d33e to
52cbf6a
Compare
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 52cbf6ac34
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
52cbf6a to
d38ab63
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d38ab63b76
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d38ab63b76
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
d38ab63 to
31171fc
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 31171fc05a
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both rendered services now set CPUWeight=idle, Nice=19 and IOSchedulingClass=idle, the CC's host-capacity T2 result: test and measurement runs yield to interactive work. IOSchedulingPriority=7 goes, because the idle I/O class takes no priority level. systemd 259 systemd.resource-control(5) maps CPUWeight=idle to the cgroup v2 cpu.idle attribute, and systemd.exec(5) documents Nice= (-20 to 19) and IOSchedulingClass= (realtime, best-effort or idle). On this host (cgroup v2; the user manager delegates cpu, memory and pids), a transient user service with these properties read cpu.idle 1, nice 19 and the idle I/O class, against 0, 0 and "none: prio 0" for a default service. tests/test_skill_usage_units.py asserts the three settings in both services; the assertion failed on the previous templates. The skill-usage README states the idle class and now names every command_center_skills input (the three reports, #970's skill-invoke-rate-latest.json and the practice slots); its evidence.json entry is rehashed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both rendered services now set CPUWeight=idle, Nice=19 and IOSchedulingClass=idle, the CC's host-capacity T2 result: test and measurement runs yield to interactive work. IOSchedulingPriority=7 goes, because the idle I/O class takes no priority level. systemd 259 systemd.resource-control(5) maps CPUWeight=idle to the cgroup v2 cpu.idle attribute, and systemd.exec(5) documents Nice= (-20 to 19) and IOSchedulingClass= (realtime, best-effort or idle). On this host (cgroup v2; the user manager delegates cpu, memory and pids), a transient user service with these properties read cpu.idle 1, nice 19 and the idle I/O class, against 0, 0 and "none: prio 0" for a default service. tests/test_skill_usage_units.py asserts the three settings in both services; the assertion failed on the previous templates. The skill-usage README states the idle class and now names every command_center_skills input (the three reports, #970's skill-invoke-rate-latest.json and the practice slots); its evidence.json entry is rehashed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both rendered services now set CPUWeight=idle, Nice=19 and IOSchedulingClass=idle, the CC's host-capacity T2 result: test and measurement runs yield to interactive work. IOSchedulingPriority=7 goes, because the idle I/O class takes no priority level. systemd 259 systemd.resource-control(5) maps CPUWeight=idle to the cgroup v2 cpu.idle attribute, and systemd.exec(5) documents Nice= (-20 to 19) and IOSchedulingClass= (realtime, best-effort or idle). On this host (cgroup v2; the user manager delegates cpu, memory and pids), a transient user service with these properties read cpu.idle 1, nice 19 and the idle I/O class, against 0, 0 and "none: prio 0" for a default service. tests/test_skill_usage_units.py asserts the three settings in both services; the assertion failed on the previous templates. The skill-usage README states the idle class and now names every command_center_skills input (the three reports, #970's skill-invoke-rate-latest.json and the practice slots); its evidence.json entry is rehashed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8413127 to
3a402a5
Compare
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both rendered services now set CPUWeight=idle, Nice=19 and IOSchedulingClass=idle, the CC's host-capacity T2 result: test and measurement runs yield to interactive work. IOSchedulingPriority=7 goes, because the idle I/O class takes no priority level. systemd 259 systemd.resource-control(5) maps CPUWeight=idle to the cgroup v2 cpu.idle attribute, and systemd.exec(5) documents Nice= (-20 to 19) and IOSchedulingClass= (realtime, best-effort or idle). On this host (cgroup v2; the user manager delegates cpu, memory and pids), a transient user service with these properties read cpu.idle 1, nice 19 and the idle I/O class, against 0, 0 and "none: prio 0" for a default service. tests/test_skill_usage_units.py asserts the three settings in both services; the assertion failed on the previous templates. The skill-usage README states the idle class and now names every command_center_skills input (the three reports, #970's skill-invoke-rate-latest.json and the practice slots); its evidence.json entry is rehashed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3a402a5 to
900a40a
Compare
900a40a to
dbccd04
Compare
…tration landscape on the command-center page The owner asked for the whole ecosystem on one page, so the command center grows from six sections to nine, still from existing producers only: - Orchestration: the CC's recorded orchestration-frameworks resolution and the same slot in cc-native-practice slots-final.json, the landing queue, the co-op's GPT read queue (read-queue-now.json) and the Adoption snapshot's orchestration tool calls by role. - Resolution landscape: each matrix winner's component, pin, evidence class, lifecycle stages and platforms, with the W6 final columns (verdict, run pin, upstream E2E at the pin, invoke evidence) as recorded or "not recorded". Each winner's repository is matched to cc-now.json mirrors.pins by the version its tag names or a commit prefix, and a winner without a mirror says so. Terminal states come only from final-stack.json and read "pending #1008/#1007" until it exists. The committed north-star readiness layers follow with the same columns; the CC's program, mirrors, rulings and ten-layer plan render as given. - SOTA skill invoke rates: one row per skill pinned in adoption/skills/manifest.json (source@ref, linked only for https, and path), joined with the 7-day counts per client from skill_usage.py and child-usage.mjs, or from #970's skill-invoke-rate-daily/1 projection when it is current. Zero calls flag "wiring defect"; a pinned skill with no install record is "not installed" (unknown while /skill-doctor is unmeasured); a called skill the manifest does not pin is "unpinned". The practice-slot table marks the orchestration-frameworks row. An unmeasured value never reads as zero. - Tokens saved: tools/local-pages/token_tools_now.py runs each token tool's own report command (rtk gain, headroom agent-savings and output-savings, context-mode doctor) and records its exit code, run time, version and own estimate in token-tools-now.json. The page shows each beside its command, labels the token-window counters as client counters, and never sums across tools, evidence classes or windows. - Research queue: research-queue.tsv rows and research-state.json's resume order. The #1012 Claude read's fixes are folded in. B1: the email mask moves into the shared sanitizer and matches after its per-token decoding (CPython html.unescape and urllib.parse.unquote, cited at v3.13.16), so @, an encoded dot (%2E or .), %2540 and a semicolon-less @ are omitted on every page; the old page-local mask left all five readable. B2: each section's label follows what it renders, and every partial section names its reason. B3: each section and the count strip render in their own guard, so a scalar codex_top_lanes_M or an integer above 1e308 degrades only its own section. The receipt lists only the not-wired inputs the page rendered. source_policy.json gains a command_center role map with sixteen exact repo and state paths, read through CommandCenterReads, which extends the Architecture reader (bounded, no-follow, protected names, no user root). Reports past their limit read "stale" with their age; times recorded as a time of day stay as recorded. tools/skill-usage/render_units.py renders reviewed user units that keep the three skill reports current: hourly, the host report (91 s measured, including the $0 zero-turn claude -p /skill-doctor, with --claude-timeout 120 because the 30 s default expired once under load) and the Claude lanes sweep (198 s and a 1.9 GB peak, projected from 181 MB to 26 KB by systemd/claude-lanes.jq); daily, the Codex lanes report, which had not finished after 25 minutes, so its completion time is unmeasured. Each step renames a finished report into place. The evidence manifest records the new hashes of source_policy.json and the skill-usage README. Tests cover each section, unknown versus zero, staleness, hostile types and strings, privacy (eight email forms, decoded twice) and the exact grants; 33 fail-before mutations of this change each fail them. The unit tests round-trip each ExecStart through systemd quoting and pass systemd-analyze verify. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both rendered services now set CPUWeight=idle, Nice=19 and IOSchedulingClass=idle, the CC's host-capacity T2 result: test and measurement runs yield to interactive work. IOSchedulingPriority=7 goes, because the idle I/O class takes no priority level. systemd 259 systemd.resource-control(5) maps CPUWeight=idle to the cgroup v2 cpu.idle attribute, and systemd.exec(5) documents Nice= (-20 to 19) and IOSchedulingClass= (realtime, best-effort or idle). On this host (cgroup v2; the user manager delegates cpu, memory and pids), a transient user service with these properties read cpu.idle 1, nice 19 and the idle I/O class, against 0, 0 and "none: prio 0" for a default service. tests/test_skill_usage_units.py asserts the three settings in both services; the assertion failed on the previous templates. The skill-usage README states the idle class and now names every command_center_skills input (the three reports, #970's skill-invoke-rate-latest.json and the practice slots); its evidence.json entry is rehashed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Scope
Track daily native skill invocations by client and lane, expose counts in Fleet, register the native Claude API plugin, and keep the measured security-audit routing cue project scoped. Absent Codex roots read UNKNOWN; separately managed native plugins are excluded from default bootstrap and acceptance, while their status checks honor CLAUDE_CONFIG_DIR.
c735e8b2e7d096475ceed380ce956b9191af508c.lane:foundation.dbccd042068a7c15cbeefe54a89be85053b8a318; reviewed head before carry:3a402a52bf49802429a654f9d413c3024b2db712.Reviewed landing rebase after #1013 — historical at 3a402a5
Rebased once on the CC's release onto captured main
ccff8765bf91aa02c0c4addad25d680d32abac89. #1013's policy-derivedexpected_counttakes over:tests/test_local_pages_policy_grants.pyis identical to captured main, with no PR edit and no grant-count literal. Nativeinventory_pathsgives 95 expected = 95 actual grants, with no missing or extra path. The landing record and its source/base assertion now bind the measured rebased input above.The advisory baseline is re-derived through existing
GitTree/derive_ci_protectedon that input. Main's 332-read baseline stays intact; current accounting remains 342 advisory unclassified reads, ten added status observations and three location-only installer moves, with the same exact script/shape classifications and no permission change. The source binding is refreshed through native derivation.Hot-file conflicts use main's evidence registry followed by native registration of the PR's owned files; no evidence entry is hand-merged. Native component-matrix and new-host-grand-list write commands produce no additional file changes. Every captured-main registry path remains present. The 95-grant record and 54 changed evidence-registration rows land in final integration commit
3a402a52bf49802429a654f9d413c3024b2db712;cda8f6de85941787be7d331ac068ba28343978acis its rebased measured source input, rather than the complete validation fix.Pure-rebase stable patch identity outside evidence.json and the grant test is unchanged:
6b10ab6ec30a149edefde9d43c6acb116826790c. After the required provenance/registration commit, that identity changes only for the delta source, landing record and base assertion. Excluding those three declared provenance files as well, implementation patch identity remainscdf2cfedd1d9f67f5be8d5d314df8c89aaae2e62in both arms. The complete range-diff and both identity results are retained in the packet.Both original landing-gate methods still fail at exact historical82bb95d1 (two failures, zero errors) and pass at this final head. Earlier blocker fixes remain unchanged: absent-root UNKNOWN, default native-plugin exclusion in every installer mode, 28 managed bootstrap skills, explicit-plugin selection refusal, and real-environment custom-config resolution.
Landing carry after #1011
The grant record was re-derived at input
900a40a6b806228cfbe0ebafc16408b5bff69c82on this carry base through the maintained test’s nativeinventory_paths: 97 expected = 97 actual grants, with no missing or extra path. The correction table, expected count, actual count and current grant summary each move from 95 to 97; historical measurements below retain their earlier explicit input bindings. This corrects the reproduced shard-3 failure at the carry head; it does not change the policy or grant test. The test fails at900a40a6b806228cfbe0ebafc16408b5bff69c82(exit1) and passes after the amendment atdbccd042068a7c15cbeefe54a89be85053b8a318(exit0). The full four-test claim module passes, final-stack check exits0, integrity validation passes70 components /11,726 hashes /four profiles /239 receipts, and native Gitleaks passes the nine-commit PR range with zero leaks.Rebased the nine reviewed commits onto #1011's landed main
c735e8b2e7d096475ceed380ce956b9191af508c, with an exact lease on the reviewed3a402a52bf49802429a654f9d413c3024b2db712head. Onlymanifests/evidence.jsonconflicted; the native main-copy and 54-file registration path resolved it. The implementation is unchanged outside the registry and the CC-approved carry-kind-2 derived value.final-stack.json regenerated by final_stack.py --write after the rebase, forced by this PR's skills-lifecycle.json row. The generated catalog changes only the source hash for
catalogs/landscape/skills-lifecycle.json; its one evidence registration is refreshed. Output matches an independent native preview byte-for-byte.final_stack.py --checkexits0 after regeneration, and the CC's carry check will byte-compare a fresh write at the new head.Final carried head:
dbccd042068a7c15cbeefe54a89be85053b8a318.validate.pypasses70 components /11,726 hashes /four profiles /239 receipts. Native Gitleaks8.30.1 passes the nine-commit PR range with zero leaks. Range-diff rows1-8 are equal outside the registry;row9's sole extra delta is the explicitly approved generated catalog hash. All nine rows are equal when that derived output is excluded too. No implementation or test change accompanies this carry. Historical measurements and earlier full-suite results below retain their original input bindings.SOTA sources
Native derivation source at the captured main base at
native-agent-stack@ccff8765bf91aa02c0c4addad25d680d32abac89:scripts/local_pages_policy_grants.py(inventory_paths),blueprints/runtime-workers/openhands/resolver/push_gate.py(GitTree/derive_ci_protected), andscripts/validate_shards.py(run/aggregate). These existing supported mechanisms supply the correction and its full-suite coverage proof.Official Claude Code environment variables, CLAUDE_CONFIG_DIR row; live/unmirrored capture read 2026-10-11, SHA-256
8097c27c0a5dd4b3428a61a9d3a79eb33b57c8eb30a3e5422d471d64c98f515f, retained unmodified with the packet.native-agent-stack@878f2891aaa9027b10b7af3e4321ef5e882eedd0:scripts/build_new_wsl_handbook.py, derived fromscripts/build_ecosystem.py@20ea4ae23a18565676823b9e3a23541c2100bb39. Used through supported--write/--checkanddigestAPIs for the handbook source-digest refresh.scipy/scipy@v1.17.1:scipy/stats/_stats_py.py,fisher_exact, used through the upstreamscipy.stats.fisher_exactAPI in an isolateduv run --with scipy==1.17.1environment to verify the three same-HEAD p values. This is a statistical replay of retained counts, not a new model run.anthropics/skills@dbd4588f9e1033efb41dad4bef2f7947c8993d44: official marketplace entry, claude-api SKILL.md, and LICENSE.txt. Public source and installed native cache agree on the digest, directory pin and namespace.Installed Claude Code 2.1.296 and
anthropics/claude-code@2301018b1f61073c501a8e7a4813ef48c239163b: release history, native skill discovery, visibility controls, and native eval fixtures, read 2026-10-10. Visibility settings cannot replace descriptions or govern plugin skills.Anthropic skill-creator description guidance,
skills/skill-creator/SKILL.md:52,67; mirror HEAD checked against live upstream at the same pin. The trigger/exclusion pattern also citesopenai/skills@49f948faa9258a0c61caceaf225e179651397431security-best-practices and security-threat-model descriptions, preservingcloudflare/security-audit-skill@c1c8a8c1471069fb0e188eeaff69b8e8db6564a8unchanged.Existing main implementation
e1c88ff3d7edc71052d6fb4eed8422438b06efaf:tools/skill-usage/skill_usage.pyandexamples/claude-native/workflows/child-usage.mjs. The daily adapter calls these collectors and projects their counts.systemd/systemd@b3d8fc43e9cb531d958c17ef2cd93b374bc14e8a(v259.5): calendar/Persistent semantics, user verification and the repository's live-clone placeholder convention.Evidence-class table
Retained primary effect size: same-checkout hermetic ablation
Use the one-checkout ablation for the primary effect size. Its arms share one HEAD and change only the inline
skillOverrides.native-skill-routingsetting. Primary citation, independently rehashed:~/.local/state/native-agent-stack/research/cc-native-practice-20261009/trigger-cases-20261010/ABLATION-TABLE.md, 2724 bytes, SHA-256770555cb65e58c0143991faf6220bf3c29e78cec671e2e274e48effd5304e179.This hermetic comparison ran 128 sessions on the same checkout, with the cue listed in 64/64 on transcripts and 0/64 off transcripts. Security-audit turn one increases 13/20 hidden to 20/20 listed, a 35 percentage point observed increase (Fisher two-sided p=0.008); invocation within three turns increases 17/20 to 20/20 (p=0.23). The indirect sibling is invoked 12/12 in both arms and in turn one 8/12 hidden versus 12/12 listed (p=0.09), with security-audit capture 0/12 in both; explicit sibling 4/4 and near misses 0/28 in each arm. The earlier source verification checked all eight primary receipt/summary hashes and all twelve supporting-table receipt/summary hashes; this final code correction does not claim a fresh corpus rescan. SciPy 1.17.1's upstream
scipy.stats.fisher_exactindependently reproduces p=0.008316008316008316, 0.23076923076923084 and 0.09316770186335403. The cue and exclusion conclusion stands within these synthetic-task limits.The CC's 21:22Z method correction identifies HEAD-subject priming in the git-status context: it reports the stale-tree control firing 7/8 under a retirement-related subject versus 2/11 under its own subjects. The three-arm study's arms differ by HEAD subject, so its effect size is overstated. Its counts remain supporting evidence; they do not supply the primary effect estimate.
Measurement rule: future A/B arms must be hermetic and share one HEAD, with
skillOverridestoggled on the same checkout. If a tree-switch control requires an empty commit, use the same subject in both arms and record HEAD/subject equivalence; differing commit subjects must not prime the git-status context.Local commands run — historical at 3a402a5
python3 scripts/validate.py: exit0, 70 components / 11,709 hashed files / four profiles / 239 receipts.Historical full-suite verification at84131271 remains retained: all341 modules /13,093 tests, zero failures/errors and1,134 skips, native aggregate exit0 on that head's exact proposed tree. It is not represented as a fresh full-suite run on this rebased head. The current released rebase is verified by the maintained gate modules and integrity checks above.
Packet:
retained local packet pr970-final-rebase-20261011/, including range-diff, pure/final patch identities, native derivation, exact red/green proofs and final report. Prior full-suite and fail-first packets remain unchanged. Astra reads this final head once; the CC's Claude delta and carry/landing are CC-owned. No extra review/model dispatch.Decision record
docs/decisions/2026-10-10-daily-skill-invoke-rate.md, including the correction-source table, final landing integration and final fail-first contracts.
Host evidence
Host evidence files are outside this change. Timer/profile application remains a separate CC-owned step after landing; no new provider, model or service run is claimed by this correction.
Checklist
Follow-ups
Audit the legacy host report's root-availability semantics; its pre-existing configured-root predicate remains separate from the corrected daily projection.
Guard malformed public replay input so the daily collector follows its normal unavailable-report path (GPT P3).
Align the routing README with the corrected zero-call interpretation: check wiring rather than infer absence of demand (GPT P3).
Re-run live-base adjudication transport additions with an external blind-copy scratch location (GPT P3; merge-only verification gap).
Return a normal status failure for list-shaped native plugin registries instead of AttributeError (Claude F1 / Codex registry thread, P3).
Support CLAUDE_CODE_PLUGIN_CACHE_DIR in native plugin status resolution (Claude F2, P3; host configuration not reproduced).
Clarify the present-tense 332-read wording in the historical 90fab19 integration paragraph (Claude F3, P3); current final advisory accounting is 342.
Replace the landing regression's copied base literal with a check bound directly to Git (last Claude micro).
Separate informational line moves from true additions in the gate delta's location list (last Claude micro).
Verify complete skill trees before staging routing evaluations (Codex stage_routing_eval.py:22; final-scope follow-up).
Expire stale daily reports' measured flags (Codex fleet_data.py:920; not reproduced in the confirmation read).
Align use-group classification with the lane collector (Codex skill_usage.py:489; not reproduced in the confirmation read).
Exclude Codex-disabled skills from zero-use candidates (Codex daily_skill_usage.py:90; final-scope follow-up).
Disclose the default routing-skill installation in profile entry-point descriptions (Codex install_claude_profile.py:490).
Verify the routing target's availability before installing the user-profile router (Codex install_claude_profile.py:196).
Reject shared copies of native Claude plugins during status resolution (Codex skills_status.py:640, final-scope follow-up; thread classified and resolved).
Check the advisory delta’s
added_locationsandremoved_locationsagainst the native derivation; the maintained gate test currently covers classifications and script/shape/total accounting without validating those location lists (Claude delta P3-1).Correct the decision record’s 94→95 grant attribution: Check active model selectors against a versioned native catalog #943 (
c4c56da1,active_model_currency.py) supplied main’s 94th grant; Derive repository grant count from reviewed policy #1013 supplies the policy-derived count assertion. Preserve the measured counts while correcting that provenance (Claude delta P3-2).Restore the displaced
AgentGapTestsdocstring (carried Claude P3).