Skip to content
Merged
5 changes: 5 additions & 0 deletions .changes/ai-slop/docs-fix-online-dead-links-44e3a27d.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
5 changes: 5 additions & 0 deletions .changes/context-guard/docs-fix-online-dead-links-500567c7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
5 changes: 5 additions & 0 deletions .changes/discovery/docs-fix-online-dead-links-542594d9.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
5 changes: 5 additions & 0 deletions .changes/evals/docs-fix-online-dead-links-e132850e.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
5 changes: 5 additions & 0 deletions .changes/harness-ops/docs-fix-online-dead-links-88d8e80e.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
5 changes: 5 additions & 0 deletions .changes/knowledge/docs-fix-online-dead-links-9563a194.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
5 changes: 5 additions & 0 deletions .changes/mcp-tools/docs-fix-online-dead-links-97b012f5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
5 changes: 5 additions & 0 deletions .changes/playbooks/docs-fix-online-dead-links-69d33461.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
5 changes: 5 additions & 0 deletions .changes/skill-quality/docs-fix-online-dead-links-89c60d1b.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
bump: none
---

No release needed (docs): fix the dead links the online link check reports
6 changes: 4 additions & 2 deletions .github/workflows/maintenance-file-dead-links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,15 @@ name: Maintenance File Dead Links
# puts the issue in the untriaged queue. A reopened rollup keeps its state.
#
# The trigger names the link-check workflow by its `name:`, which the
# standards component owns: a rename there disconnects this workflow.
# standards component owns: a rename there disconnects this workflow. Both
# names stay listed until the sync carrying standards#990's rename lands; then
# drop the old one.

on:
# Runs this file from the default branch and executes no code from the
# link-check run: the artifact is data, checked before use.
workflow_run: # zizmor: ignore[dangerous-triggers]
workflows: [Maintenance Check Links Online Claude Code Plugins]
workflows: [Maintenance Check Links Online, Maintenance Check Links Online Claude Code Plugins]
types: [completed]
branches: [main]

Expand Down
15 changes: 15 additions & 0 deletions .lycheeignore
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,18 @@ github\.com/meridian-labs/agent-cli/releases/tag/
^https://api\.github\.com/repos/anthropics/claude-code/releases$
^https://api\.github\.com/repos/anthropics/claude-code/releases/tags/v2\.1\.269$
^https://api\.github\.com/repos/anthropics/claude-code/tags$

# Publisher bot block: 403 to the runner and to a browser User-Agent; the DOI resolves to the cited Parnas paper on dl.acm.org (verified 2026-11-11).
^https://doi\.org/10\.1145/361598\.361623$

# claude.ai connectors settings page behind sign-in: 403 on the runner (online run 42809150911) and to a signed-out browser User-Agent (verified 2026-11-11).
^https://claude\.ai/customize/connectors$

# Section anchors rendered only by the page's JavaScript: lychee reads the served HTML, which carries no heading ids (1 id on staticcheck.dev and the Chrome DevTools Protocol page, 6 on Apple HIG pages, verified 2026-11-11). The anchors are kept because skill pointers must name their section.
^https://staticcheck\.dev/docs/configuration/#ignoring-problems-with-linter-directives$
^https://chromedevtools\.github\.io/devtools-protocol/tot/Page/#method-startScreencast$
^https://developer\.apple\.com/design/human-interface-guidelines/color#iOS-iPadOS$
^https://developer\.apple\.com/design/human-interface-guidelines/dark-mode#iOS-iPadOS$

# Unfilled placeholder link in the absorb-upstream record template: filled per record, never a real URL.
^https://github\.com/(%3C|<)owner(%3E|>)/(%3C|<)repo(%3E|>)$
2 changes: 1 addition & 1 deletion docs/plugin-philosophy.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ Keep plugins horizontally decoupled:
the fallback runs, the skill says once which plugin it would use and what that plugin would add,
so the user can install or enable it. The first versioned dependency brings a release-tag step with it.
- **Pointer**: when a plugin here gains its first versioned dependency, read
[release a plugin that others depend on](https://code.claude.com/docs/en/plugins/dependencies#release-a-plugin-that-others-depend-on)
[release a plugin that others depend on](https://code.claude.com/docs/en/plugins/dependencies#tag-plugin-releases-for-version-resolution)
for who tags which repository, and
[create a release tag](https://code.claude.com/docs/en/plugins/dependencies#create-a-release-tag)
for the tag name and the command that makes it, live.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ correlate. `none` marks an in-repo decision with no upstream section. Shared for
| A15 Per-item ledger | Deferred: whether morning-brief's readers need a report of changes since the previous brief. If they do, it folds into #7578 or a new issue | #7578; no docs page covers a per-item report ledger as of 2026-10-16 |
| A16 Open egress for CI lanes | Deferred: a security-class owner question whose trade-off ADR 0049 records. Revisit only with evidence that hosted runners offer default-deny egress | [ADR 0049](../adr/0049-run-ci-lanes-on-github-hosted-runners-under-trigger-and-token-hardening.md) |
| A17 Approval defaults per surface | Rejected as a new artifact: the [loop-lane convention, "Permission modes"](../contracts/loop-lane/README.md#permission-modes) already fixes the permission mode per lane surface (`auto` for local lanes, `dontAsk` for intake and review) | When a lane's approval behavior is in question, fetch [Available modes](https://code.claude.com/docs/en/permission-modes#available-modes) and [Turn off permission prompts in unattended runs](https://code.claude.com/docs/en/headless#turn-off-permission-prompts-in-unattended-runs) live |
| A18 Managed Agents as an execution target | First workload: a scheduled re-read of the docs-page pointers in `docs/upstream/` records through the rung-1 docs lookup ([fetch route](../contracts/upstream-drift/README.md#reading-the-basis-the-fetch-route)), reporting each row whose section is gone, moved or no longer supports it. Those rechecks are manual today ([upstream-drift](../contracts/upstream-drift/README.md#drift-signal-content-hashing-deferred)); git-pinned pages already have the monthly drift check. Basis: a cloud environment mounts this public repository with no token and reaches only the docs hosts the pointers name, so no local machine; it holds no credential or vault and reports in its final message, so it is read-only and editing a record stays a reviewed step; its data is public repository content and public pages only, so the surface's ZDR and HIPAA BAA ineligibility does not bar it. Failure detection: a succeeded deployment run is not success. A run fails when its deployment run carries an error, the deployment is paused or archived, no run lands in its window, its session terminates or is not idle by the check's deadline, it goes idle on any stop reason but `end_turn`, or its final message lacks the completion line the prompt requires. The check reads deployment runs and each session's past events through the API and trusts no webhook. Who runs the check and which plan funds the runs stay on #6970; running the onboarding stays the operator's (A19) | When evaluating it, fetch [Beta access](https://platform.claude.com/docs/en/managed-agents/overview#beta-access), [GitHub MCP and session resources](https://platform.claude.com/docs/en/managed-agents/github#github-mcp-and-session-resources), [Networking](https://platform.claude.com/docs/en/managed-agents/environments#networking), [Deployment runs](https://platform.claude.com/docs/en/managed-agents/scheduled-deployments#deployment-runs), [Failure behavior](https://platform.claude.com/docs/en/managed-agents/scheduled-deployments#failure-behavior), [Respond when the session goes idle](https://platform.claude.com/docs/en/managed-agents/events-and-streaming#respond-when-the-session-goes-idle), [List past events](https://platform.claude.com/docs/en/managed-agents/events-and-streaming#list-past-events), [Supported event types](https://platform.claude.com/docs/en/managed-agents/webhooks#supported-event-types) and [Delivery behavior](https://platform.claude.com/docs/en/managed-agents/webhooks#delivery-behavior) live; as of 2026-10-26; #7675 |
| A18 Managed Agents as an execution target | First workload: a scheduled re-read of the docs-page pointers in `docs/upstream/` records through the rung-1 docs lookup ([fetch route](../contracts/upstream-drift/README.md#reading-the-basis-the-fetch-route)), reporting each row whose section is gone, moved or no longer supports it. Those rechecks are manual today ([upstream-drift](../contracts/upstream-drift/README.md#drift-signal-content-hashing-deferred)); git-pinned pages already have the monthly drift check. Basis: a cloud environment mounts this public repository with no token and reaches only the docs hosts the pointers name, so no local machine; it holds no credential or vault and reports in its final message, so it is read-only and editing a record stays a reviewed step; its data is public repository content and public pages only, so the surface's ZDR and HIPAA BAA ineligibility does not bar it. Failure detection: a succeeded deployment run is not success. A run fails when its deployment run carries an error, the deployment is paused or archived, no run lands in its window, its session terminates or is not idle by the check's deadline, it goes idle on any stop reason but `end_turn`, or its final message lacks the completion line the prompt requires. The check reads deployment runs and each session's past events through the API and trusts no webhook. Who runs the check and which plan funds the runs stay on #6970; running the onboarding stays the operator's (A19) | When evaluating it, fetch [Beta access](https://platform.claude.com/docs/en/managed-agents/overview#beta-access), [GitHub MCP and session resources](https://platform.claude.com/docs/en/managed-agents/github#git-hub-mcp-and-session-resources), [Networking](https://platform.claude.com/docs/en/managed-agents/environments#networking), [Deployment runs](https://platform.claude.com/docs/en/managed-agents/scheduled-deployments#deployment-runs), [Failure behavior](https://platform.claude.com/docs/en/managed-agents/scheduled-deployments#failure-behavior), [Respond when the session goes idle](https://platform.claude.com/docs/en/managed-agents/events-and-streaming#respond-when-the-session-goes-idle), [List past events](https://platform.claude.com/docs/en/managed-agents/events-and-streaming#list-past-events), [Supported event types](https://platform.claude.com/docs/en/managed-agents/webhooks#supported-event-types) and [Delivery behavior](https://platform.claude.com/docs/en/managed-agents/webhooks#delivery-behavior) live; as of 2026-10-26; #7675 |
| A19 Onboarding path and reference implementation | Rejected: a version-floor skill rule, since `.claude/rules/skill-bodies-state-current-rules.md` already allows the pointer and forbids a restated version. Running the onboarding is the operator's call; the reference implementation's agent definition is read only inside #7675 | #7675 |
| A20 Brevity and links from the source | Rejected: ai-briefing already requires a working source URL per item and forbids invented details (`plugins/ai-briefing/skills/generate/SKILL.md`) | none |
| A21 Digest tagging rulings | Deferred inside the digest slice; no repository decision depends on them | none |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ not from a file at the pin, so they are not drift inputs.
| Idea | Our surface | Disposition |
|---|---|---|
| A PR body can carry text that tells the grader to approve ([reply](https://x.com/kurtextrem/status/2112833622893871390)); no mitigation was given | The lanes read the PR body as data (`plugins/review/skills/code-review/SKILL.md:142`, `docs/contracts/untrusted-content/README.md:13-25`); merge-risk marks `area`, `why` and `checker` as data (`SKILL.md`, step 5) | **already have** |
| Bind the verdict to the commit it graded ([reply](https://x.com/3clown3/status/2112894564788756825)) | `/review:merge-risk` step 4 re-reads the head and diff, and its result names the head; `plugins/verification/scripts/confirm-verdict.sh:11-12` | **already have** |
| Bind the verdict to the commit it graded (an x.com reply, since deleted) | `/review:merge-risk` step 4 re-reads the head and diff, and its result names the head; `plugins/verification/scripts/confirm-verdict.sh:11-12` | **already have** |
| A PR that edits the grader's own rules rates high ([reply](https://x.com/wfouaaad/status/2117641184638091709)) | The floor's `trust` and `gate` classes (`HOLD_PATH_CLASSES` rows for `docs/conventions/pr-pipeline.yaml`, `**/.claude/**`, `**/CLAUDE.md`, `merge-holds.mjs` itself, `docs/review/**` and the `pr-review-*` workflows), held off by Q15; `plugins/review/**`, which holds the CI lane skill bodies, is not in the floor | **already have** (gap noted, no change while Q15 stands) |
| Grade the stack as a whole, intermediate states included ([reply](https://x.com/harrisonju/status/2112950775190036673)) | `/work-items:ship` lands an integration branch through one PR (`plugins/work-items/skills/ship/SKILL.md:110-119`); close-out review covers the whole container (`plugins/review/skills/quality-gate/context/close-out.md:15-18`) | **reject:** we do not ship GitHub PR stacks |
| Grade with a model other than the author's ([reply](https://x.com/heyarunb/status/2112806554911297791)) | `plugins/review/agents/lane-verifier.md:5` is `model: inherit`; `/review:fanout` model diversity is opt-in | **open:** owner decision on a different grader model, pending |
Expand Down
Loading
Loading