Repository navigation
Conversation
There was a problem hiding this comment.
5 issues found across 4 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="docs/agents/issue-tracker.md">
<violation number="1" location="docs/agents/issue-tracker.md:22">
P2: `Decision:` comments do not identify their topic, but the next rule requires choosing the newest comment per topic. Require a topic after the fixed prefix so agents can reliably determine which decision supersedes another.</violation>
<violation number="2" location="docs/agents/issue-tracker.md:24">
P2: The unconditional `Current state:` requirement can block work on issues that have no such comment. Read that comment only for umbrella issues, and only when one exists.</violation>
<violation number="3" location="docs/agents/issue-tracker.md:31">
P2: This dependent-PR instruction no longer prevents merge-readiness while prerequisite semantics remain unresolved. Keep the publication permission, but explicitly defer merge-readiness until the prerequisites are resolved.</violation>
</file>
<file name="docs/agents/device-verification.md">
<violation number="1" location="docs/agents/device-verification.md:31">
P3: This cleanup instruction is ambiguous because `also failed attempts` is not clearly an object of `Close`; an agent can miss that failed session attempts require cleanup. Use `including failed attempts` to preserve the required scope.</violation>
</file>
<file name="AGENTS.md">
<violation number="1" location="AGENTS.md:50">
P2: This wording no longer guarantees non-overlapping file ownership for parallel workers. Keep the explicit `disjoint files` rule so concurrent agents do not edit the same file and create conflicts.</violation>
</file>
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
|
|
||
| ## Current state | ||
|
|
||
| When you change a decision or the scope of your issue, post a comment that starts with `Decision:`. |
There was a problem hiding this comment.
P2: Decision: comments do not identify their topic, but the next rule requires choosing the newest comment per topic. Require a topic after the fixed prefix so agents can reliably determine which decision supersedes another.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/issue-tracker.md, line 22:
<comment>`Decision:` comments do not identify their topic, but the next rule requires choosing the newest comment per topic. Require a topic after the fixed prefix so agents can reliably determine which decision supersedes another.</comment>
<file context>
@@ -1,31 +1,34 @@
+## Current state
+
+When you change a decision or the scope of your issue, post a comment that starts with `Decision:`.
+After a PR merges on your umbrella issue, post a `Current state:` comment: merged PRs, open PRs, and the next step.
+Before you continue work, read all `Decision:` comments (newest wins per topic) and the newest `Current state:` comment.
</file context>
| When you change a decision or the scope of your issue, post a comment that starts with `Decision:`. | |
| When you change a decision or the scope of your issue, post `Decision: <topic> — <decision and reason>`. |
| - In a new worktree, run `pnpm install --frozen-lockfile && pnpm build` before you test. | ||
| - Do not change other worktrees, devices, sessions, dirty files, or experiments. Do not use `git stash`; all worktrees share it. | ||
| - Do not copy `.env` into a worktree. For host credentials, source the main checkout's file by its absolute path. | ||
| - Give each parallel worker different files and a different device. `pnpm check:affected --run` and `pnpm check` run one at a time automatically. |
There was a problem hiding this comment.
P2: This wording no longer guarantees non-overlapping file ownership for parallel workers. Keep the explicit disjoint files rule so concurrent agents do not edit the same file and create conflicts.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At AGENTS.md, line 50:
<comment>This wording no longer guarantees non-overlapping file ownership for parallel workers. Keep the explicit `disjoint files` rule so concurrent agents do not edit the same file and create conflicts.</comment>
<file context>
@@ -1,61 +1,62 @@
+- In a new worktree, run `pnpm install --frozen-lockfile && pnpm build` before you test.
+- Do not change other worktrees, devices, sessions, dirty files, or experiments. Do not use `git stash`; all worktrees share it.
+- Do not copy `.env` into a worktree. For host credentials, source the main checkout's file by its absolute path.
+- Give each parallel worker different files and a different device. `pnpm check:affected --run` and `pnpm check` run one at a time automatically.
+- The layering scan reads only tracked files. Stage new modules before you trust its result.
+- When you rename a file, move its Fallow baseline entry. Do not regenerate unrelated baselines.
</file context>
| - Give each parallel worker different files and a different device. `pnpm check:affected --run` and `pnpm check` run one at a time automatically. | |
| - Give parallel workers disjoint files and distinct devices. `pnpm check:affected --run` and `pnpm check` run one at a time automatically. |
|
|
||
| When you change a decision or the scope of your issue, post a comment that starts with `Decision:`. | ||
| After a PR merges on your umbrella issue, post a `Current state:` comment: merged PRs, open PRs, and the next step. | ||
| Before you continue work, read all `Decision:` comments (newest wins per topic) and the newest `Current state:` comment. |
There was a problem hiding this comment.
P2: The unconditional Current state: requirement can block work on issues that have no such comment. Read that comment only for umbrella issues, and only when one exists.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/issue-tracker.md, line 24:
<comment>The unconditional `Current state:` requirement can block work on issues that have no such comment. Read that comment only for umbrella issues, and only when one exists.</comment>
<file context>
@@ -1,31 +1,34 @@
+
+When you change a decision or the scope of your issue, post a comment that starts with `Decision:`.
+After a PR merges on your umbrella issue, post a `Current state:` comment: merged PRs, open PRs, and the next step.
+Before you continue work, read all `Decision:` comments (newest wins per topic) and the newest `Current state:` comment.
+
## Dependencies and sequencing
</file context>
| Before you continue work, read all `Decision:` comments (newest wins per topic) and the newest `Current state:` comment. | |
| Before you continue work, read all `Decision:` comments (newest wins per topic). On an umbrella issue, read the newest `Current state:` comment, if one exists. |
| - `Blocked by: ...` lines, linked prerequisite issues, and branch-base notes are part of the issue contract. | ||
| - Before you schedule or review work, examine the blockers. If one is open, decide: wait, stack on its branch, or rescope explicitly. | ||
| - If the prerequisite semantics are not resolved, do not mark the issue as ready for implementation. | ||
| You can publish a dependent PR with its base and blockers explicit. |
There was a problem hiding this comment.
P2: This dependent-PR instruction no longer prevents merge-readiness while prerequisite semantics remain unresolved. Keep the publication permission, but explicitly defer merge-readiness until the prerequisites are resolved.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/issue-tracker.md, line 31:
<comment>This dependent-PR instruction no longer prevents merge-readiness while prerequisite semantics remain unresolved. Keep the publication permission, but explicitly defer merge-readiness until the prerequisites are resolved.</comment>
<file context>
@@ -1,31 +1,34 @@
+- `Blocked by: ...` lines, linked prerequisite issues, and branch-base notes are part of the issue contract.
+- Before you schedule or review work, examine the blockers. If one is open, decide: wait, stack on its branch, or rescope explicitly.
+- If the prerequisite semantics are not resolved, do not mark the issue as ready for implementation.
+ You can publish a dependent PR with its base and blockers explicit.
+- Before you close an umbrella issue, verify child issue states and key implementation PRs, not only checked boxes.
</file context>
| You can publish a dependent PR with its base and blockers explicit. | |
| You can publish a dependent PR with its base and blockers explicit. Do not mark it merge-ready until prerequisite semantics are resolved; see `docs/agents/pull-requests.md`. |
| Use purpose-specific sessions. For extra isolation, use a separate `--state-dir` under `/private/tmp`. | ||
| Close every manually opened session, including failed attempts, with its original session, platform, UDID, and state directory. | ||
| Use one session for each purpose. For more isolation, use a separate `--state-dir` under `/private/tmp`. | ||
| Close each session that you opened manually, also failed attempts, with its original session, platform, UDID, and state directory. |
There was a problem hiding this comment.
P3: This cleanup instruction is ambiguous because also failed attempts is not clearly an object of Close; an agent can miss that failed session attempts require cleanup. Use including failed attempts to preserve the required scope.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/device-verification.md, line 31:
<comment>This cleanup instruction is ambiguous because `also failed attempts` is not clearly an object of `Close`; an agent can miss that failed session attempts require cleanup. Use `including failed attempts` to preserve the required scope.</comment>
<file context>
@@ -4,59 +4,59 @@ Use this for Apple runner changes or manual device runs. For foldables, also rea
-Use purpose-specific sessions. For extra isolation, use a separate `--state-dir` under `/private/tmp`.
-Close every manually opened session, including failed attempts, with its original session, platform, UDID, and state directory.
+Use one session for each purpose. For more isolation, use a separate `--state-dir` under `/private/tmp`.
+Close each session that you opened manually, also failed attempts, with its original session, platform, UDID, and state directory.
For `DEVICE_IN_USE`:
</file context>
| Close each session that you opened manually, also failed attempts, with its original session, platform, UDID, and state directory. | |
| Close each session that you opened manually, including failed attempts, with its original session, platform, UDID, and state directory. |
|
The docs change in 8cec04a reads well and CI is green (9 checks, none failing), but it drops two rules that still need to apply. I did not check every hunk of the four files, and I did not search for other readers of the The disjoint-files rule is gone from Worktree setup in AGENTS.md. Parallel workers can again get overlapping files. The merge-readiness pointer to docs/agents/pull-requests.md is gone from issue-tracker.md. Please restore both rules, and make Not blocking: you can take or leave these. In AGENTS.md the old note that check:affected and check serialize also vanished, so the replacement could also name the rule of distinct devices. In issue-tracker.md, The open inline threads on the topic key (#3723 (comment)), the disjoint-files rule (#3723 (comment)), the unconditional Current state read (#3723 (comment)), and the dropped pull-requests.md pointer (#3723 (comment)) still stand. The lower-priority thread on the failed-attempts clause also still applies (#3723 (comment)). |
…ns in comments - Require ASD-STE100 for agent docs; rewrite AGENTS.md, issue-tracker, device-verification, and test-experiments in it. - Record issue decisions as `Decision:` comments and umbrella progress as `Current state:` comments; read them before resuming work. - Route new shared constraints to task docs, not private agent memory. - Warn that all worktrees share `git stash`. - Delete duplicated rules to stay inside the guidance byte budgets.
- ios-runner-protocol-optimizations.md said status recovery was in progress; runner-command-recovery.ts implements it and ADR 0005 owns the policy. - usbmux-runner-transport-experiment.md recorded #1403 evidence and an override it also declared removed; #1517 shipped the decision. - node-client-result-types.md called the interaction family untyped; CommandResultMap now types it. No file links to any of them.
CONTRIBUTING.md told contributors to run `check:affected --run` on the dirty tree as pre-push validation. docs/agents/testing.md requires a committed head and an `exactCommit: true` receipt. Align the guide and drop the gate internals that testing.md owns.
…d ADR reading - Move the five test-harness terms from docs/agents/domain.md into the CONTEXT.md "Providers and tests" section and delete domain.md; review.md already owns the ADR-conflict rule. Trim CONTEXT.md wording to fit its budget. - review.md: read an ADR's Status and "Rules at a glance" first, and other sections only for the rules a change touches. - cli-flags.md: flag definitions live in packages/command-registry; help rendering lives in src/commands/schema, not src/cli/parser.
`src/commands/*-command-contracts.ts` stopped existing in #772. Command input schemas live in the `inputSchema` of each command family's metadata.
8cec04a to
f51b806
Compare
Size Report
Startup median (7 runs, lower is better):
|
…rification Xcode 27.1 is now the selected toolchain on the maintainer's hosts, so plain `xcrun devicectl` reaches the hinge and display commands. The beta-only device-type note no longer applies.
…results Commit 927c02d deleted docs/node-client-result-types.md and said the interaction family was typed. That was wrong: 14 interaction methods and all observability methods still return CommandRequestResult. Keep the note's one still-true rule beside CommandResult instead.
- CONTRIBUTING.md: keep the fail-open rule, what `pnpm check` covers, and the Windows fallback. - device-verification.md: keep the physical-iOS measurement pitfalls from the deleted usbmux note.
- cli-flags.md: add a field to the field map; defineFieldCommandMetadata generates inputSchema and the audience. - review.md: read the Decision section of an ADR with no "Rules at a glance". - code-ownership.md: point CLI flag owners at cli-flags.md. - test-authoring.md: split a test file only with its source module. - pull-requests.md: name the receipt to record. - test-audit.md: "put" a batch in a PR, not "merge" it. - Fixture comments: drop the undefined "Phase B" and point at the capture commands in git history.
There was a problem hiding this comment.
4 issues found across 11 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="docs/agents/device-verification.md">
<violation number="1" location="docs/agents/device-verification.md:28">
P2: This line does not say what to check, so an agent cannot act on it. Name the check: the exit status and output of each command must show success before its time is recorded.</violation>
</file>
<file name="CONTRIBUTING.md">
<violation number="1" location="CONTRIBUTING.md:215">
P3: The restored `pnpm check` list drops dependency-graph parity and bundle ownership, which the previous version named. It also omits the package checks (`check:package`) and the docs checks that `check:tooling` runs. Add the two dropped items back, and name the package check.</violation>
</file>
<file name="docs/agents/device-foldable.md">
<violation number="1" location="docs/agents/device-foldable.md:4">
P2: The removed bullet still applies: the repo still calls 27.1 a beta and points to Xcode-27.1.0-Beta. Agents may try a non-Duo device on 27.1 and fail without this warning. Restore the device-type restriction, or show that the restriction no longer holds.</violation>
<violation number="2" location="docs/agents/device-foldable.md:4">
P1: Removing the `DEVELOPER_DIR` pin leaves agents on hosts whose `xcode-select` points to an older Xcode without a working command. The repo's own Duo harness and README still require that pin and fail without it. Restore the toolchain instruction for these commands, or keep the note that `xcode-select` may select an older Xcode.</violation>
</file>
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
| toolchain per command: | ||
| `DEVELOPER_DIR=<Xcode-27.1>/Contents/Developer xcrun devicectl device info displays --device <udid>`. | ||
| Before you change capture behavior on a multi-panel device, read ADR 0025. | ||
| To list the panels, run `xcrun devicectl device info displays --device <udid>`. |
There was a problem hiding this comment.
P1: Removing the DEVELOPER_DIR pin leaves agents on hosts whose xcode-select points to an older Xcode without a working command. The repo's own Duo harness and README still require that pin and fail without it. Restore the toolchain instruction for these commands, or keep the note that xcode-select may select an older Xcode.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/device-foldable.md, line 4:
<comment>Removing the `DEVELOPER_DIR` pin leaves agents on hosts whose `xcode-select` points to an older Xcode without a working command. The repo's own Duo harness and README still require that pin and fail without it. Restore the toolchain instruction for these commands, or keep the note that `xcode-select` may select an older Xcode.</comment>
<file context>
@@ -1,9 +1,7 @@
-The iOS 27.1 runtime comes only with its Xcode. `xcode-select` can select an older Xcode.
-For each command, set the toolchain explicitly:
-`DEVELOPER_DIR=<Xcode-27.1>/Contents/Developer xcrun devicectl device info displays --device <udid>`.
+To list the panels, run `xcrun devicectl device info displays --device <udid>`.
- Panels: the command lists each integrated panel with `backlightState`. Only the lit panel permits capture.
</file context>
| To list the panels, run `xcrun devicectl device info displays --device <udid>`. | |
| To list the panels, run `DEVELOPER_DIR=<Xcode-27.1>/Contents/Developer xcrun devicectl device info displays --device <udid>`. The `xcode-select` default may point to an older Xcode, so set the toolchain explicitly. |
| Keep the transport below session and client behavior. Keep xctestrun preparation outside request execution. | ||
| After signing, run `node -e 0` before you measure Gatekeeper-sensitive startup. | ||
| Before you measure on a physical iOS device, set Auto-Lock to Never. | ||
| A failed command can look like a fast success. Examine each result before you record its time. |
There was a problem hiding this comment.
P2: This line does not say what to check, so an agent cannot act on it. Name the check: the exit status and output of each command must show success before its time is recorded.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/device-verification.md, line 28:
<comment>This line does not say what to check, so an agent cannot act on it. Name the check: the exit status and output of each command must show success before its time is recorded.</comment>
<file context>
@@ -24,6 +24,8 @@ For Apple connection failures, start at `packages/platform-apple/src/runner/runn
Keep the transport below session and client behavior. Keep xctestrun preparation outside request execution.
After signing, run `node -e 0` before you measure Gatekeeper-sensitive startup.
+Before you measure on a physical iOS device, set Auto-Lock to Never.
+A failed command can look like a fast success. Examine each result before you record its time.
## Ownership and cleanup
</file context>
| A failed command can look like a fast success. Examine each result before you record its time. | |
| A failed command can still print a fast time. Check the exit status and output of each command before you record its time. |
| @@ -1,24 +1,28 @@ | |||
| # Foldable Apple verification | |||
There was a problem hiding this comment.
P2: The removed bullet still applies: the repo still calls 27.1 a beta and points to Xcode-27.1.0-Beta. Agents may try a non-Duo device on 27.1 and fail without this warning. Restore the device-type restriction, or show that the restriction no longer holds.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/device-foldable.md, line 4:
<comment>The removed bullet still applies: the repo still calls 27.1 a beta and points to Xcode-27.1.0-Beta. Agents may try a non-Duo device on 27.1 and fail without this warning. Restore the device-type restriction, or show that the restriction no longer holds.</comment>
<file context>
@@ -1,9 +1,7 @@
-The iOS 27.1 runtime comes only with its Xcode. `xcode-select` can select an older Xcode.
-For each command, set the toolchain explicitly:
-`DEVELOPER_DIR=<Xcode-27.1>/Contents/Developer xcrun devicectl device info displays --device <udid>`.
+To list the panels, run `xcrun devicectl device info displays --device <udid>`.
- Panels: the command lists each integrated panel with `backlightState`. Only the lit panel permits capture.
</file context>
| the run also includes staged, unstaged, and untracked files; treat that result as local feedback. | ||
| Unknown, workflow, lockfile, and selector-owning changes fail open to the full local set. For broad | ||
| refactors or when explicitly requested, run `pnpm check`: formatting, lint, typechecking, layering, | ||
| production exports, MCP metadata, the build, Fallow, unit tests, and local smoke tests. Both commands |
There was a problem hiding this comment.
P3: The restored pnpm check list drops dependency-graph parity and bundle ownership, which the previous version named. It also omits the package checks (check:package) and the docs checks that check:tooling runs. Add the two dropped items back, and name the package check.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At CONTRIBUTING.md, line 215:
<comment>The restored `pnpm check` list drops dependency-graph parity and bundle ownership, which the previous version named. It also omits the package checks (`check:package`) and the docs checks that `check:tooling` runs. Add the two dropped items back, and name the package check.</comment>
<file context>
@@ -210,9 +210,12 @@ pnpm check:affected --run --head "$(git rev-parse HEAD)"
-specialized toolchains, and live device lanes.
+Unknown, workflow, lockfile, and selector-owning changes fail open to the full local set. For broad
+refactors or when explicitly requested, run `pnpm check`: formatting, lint, typechecking, layering,
+production exports, MCP metadata, the build, Fallow, unit tests, and local smoke tests. Both commands
+share one host lock and need macOS or Linux; on Windows, use the affected plan and direct focused
+checks. GitHub CI stays authoritative for coverage, provider integration, specialized toolchains,
</file context>
The ASD-STE100 rewrites of ADRs and help passed their authors' self-reviews, then failed independent reviews from another model provider with high and medium meaning changes in every PR. Record the rule in review.md and fold two one-word lists into sentences to stay inside the byte budget.
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="docs/agents/review.md">
<violation number="1" location="docs/agents/review.md:32">
P2: This wording drops control-flow narration from the review targets: a comment can narrate visible execution without repeating the code. Keep `narrating comments` in this rule so such comments remain actionable.</violation>
</file>
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
| Unreleased shapes have no external compatibility obligation. | ||
| - Require each new test to detect a credible production failure. | ||
| Test doubles must fail at the same seam as production. | ||
| - Find dead code, redundant guards, casts, comments that repeat the code, and competing owners. |
There was a problem hiding this comment.
P2: This wording drops control-flow narration from the review targets: a comment can narrate visible execution without repeating the code. Keep narrating comments in this rule so such comments remain actionable.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/review.md, line 32:
<comment>This wording drops control-flow narration from the review targets: a comment can narrate visible execution without repeating the code. Keep `narrating comments` in this rule so such comments remain actionable.</comment>
<file context>
@@ -35,34 +29,20 @@ For mutations or base comparisons, use [isolated experiments](test-experiments.m
- - Casts.
- - Comments that repeat the code.
- - Competing owners.
+- Find dead code, redundant guards, casts, comments that repeat the code, and competing owners.
Fix the owning rule, not only named sites.
+- For a bulk rewrite of prose (docs, ADRs, help), get a review from another model provider.
</file context>
| - Find dead code, redundant guards, casts, comments that repeat the code, and competing owners. | |
| - Find dead code, redundant guards, casts, narrating comments, and competing owners. |
There was a problem hiding this comment.
1 issue found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="docs/agents/code-ownership.md">
<violation number="1" location="docs/agents/code-ownership.md:13">
P2: This row removes the only pointer to `daemon-command-registry.ts`, which still owns request-policy decisions such as `resolveProviderDeviceResolutionIntent` and `shouldSkipSessionlessProviderDevice`. Keep the trait owner, and restore a row for the daemon predicates so agents do not miss that logic.</violation>
</file>
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
| | Command names | `packages/command-registry/src/catalog.ts` | | ||
| | Surface, runtime, batch, timeout traits | `packages/command-registry/src/registry.ts` | | ||
| | Daemon routes and request policy | `packages/daemon/src/core/daemon-command-registry.ts` | | ||
| | Surface, runtime, batch, timeout, daemon route and policy traits | `packages/command-registry/src/registry.ts` | |
There was a problem hiding this comment.
P2: This row removes the only pointer to daemon-command-registry.ts, which still owns request-policy decisions such as resolveProviderDeviceResolutionIntent and shouldSkipSessionlessProviderDevice. Keep the trait owner, and restore a row for the daemon predicates so agents do not miss that logic.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/code-ownership.md, line 13:
<comment>This row removes the only pointer to `daemon-command-registry.ts`, which still owns request-policy decisions such as `resolveProviderDeviceResolutionIntent` and `shouldSkipSessionlessProviderDevice`. Keep the trait owner, and restore a row for the daemon predicates so agents do not miss that logic.</comment>
<file context>
@@ -10,8 +10,7 @@ Read the owner. Do not copy its policy into consumers.
| Command names | `packages/command-registry/src/catalog.ts` |
-| Surface, runtime, batch, timeout traits | `packages/command-registry/src/registry.ts` |
-| Daemon routes and request policy | `packages/daemon/src/core/daemon-command-registry.ts` |
+| Surface, runtime, batch, timeout, daemon route and policy traits | `packages/command-registry/src/registry.ts` |
| Interaction guarantees | `packages/contracts/src/interaction-guarantees.ts` |
| Runtime-fact admission | `packages/daemon/src/core/runtime-admission.ts`, `src/platform-runtime-gateway.ts` |
</file context>
| | Surface, runtime, batch, timeout, daemon route and policy traits | `packages/command-registry/src/registry.ts` | | |
| | Surface, runtime, batch, timeout, daemon route traits | `packages/command-registry/src/registry.ts` | | |
| | Daemon request-policy predicates | `packages/daemon/src/core/daemon-command-registry.ts` | |
|
The two earlier findings are still open at 01e5eb2, and the code change itself is fine. I fixed nothing myself. The AGENTS.md ownership wording now keeps the rule, so that part is done. No conflicts. Only Smoke Tests are still queued or running, and this docs-only change does not touch the device smoke routes, so I read that as unrelated. The new text at docs/agents/issue-tracker.md:31 says a dependent PR can be published, but it gives no merge condition. The old text sent merge-readiness to docs/agents/pull-requests.md. Without it, a reader can treat a dependent PR as ready while its prerequisite is open. Please restore "merge-readiness follows docs/agents/pull-requests.md". docs/agents/device-foldable.md:3 drops the Not blocking: the "newest wins per topic" rule at docs/agents/issue-tracker.md:22 has no topic key, so a newer decision on one topic overrides unrelated ones, and requiring "Decision: : ..." and matching on the topic would fix it. You can take or leave it. On the open inline threads, four of them still apply: no topic key for Decision, merge-readiness pointer missing, DEVELOPER_DIR pin missing, and Duo-only bullet dropped. Three more P2 threads still apply: Current state read unconditionally, the unnamed check in "Examine each result", and one P3 on ambiguous "also failed attempts". The AGENTS.md:50 thread no longer applies, because each worker now gets different files and a different device, which keeps the ownership rule, so you can resolve it. I did not check the CONTRIBUTING.md and review.md threads. I read only the diffs of AGENTS.md, device-verification, device-foldable and issue-tracker. I did not check the other rewritten docs for dropped conditions, and I did not search for links to the deleted docs. Before merge, restore the merge-readiness pointer and the Xcode pin or Duo-only note, add a topic key to Decision:, and answer the open threads above. This review covers 01e5eb2. The newer head 27473b1 only edits one row in docs/agents/code-ownership.md, which does not touch these findings. |
|
The earlier docs fixes look good, but one change still needs a fix before merge. At 27473b1 the rule in docs/agents/issue-tracker.md#L31 says only "You can publish a dependent PR with its base and blockers explicit." The old text also said that merge-readiness follows docs/agents/pull-requests.md, and that pointer is gone. An agent can now read this line as permission to merge while the prerequisites are still open. Please restore the pointer, for example by appending "Merge-readiness follows docs/agents/pull-requests.md." https://github.com/callstack/agent-device/blob/27473b1/docs/agents/issue-tracker.md#L31 I read only issue-tracker.md and AGENTS.md at this commit. I did not compare the other rewritten docs rule by rule, and I did not check every inline thread. The open thread on the same missing pointer still applies: #3723 (comment). Two more still apply: the "Decision:" topic rule at #3723 (comment) and the "Current state:" read rule at #3723 (comment). The thread on AGENTS.md:50 no longer applies, because that line now says different files and a different device per worker, so please resolve it: #3723 (comment). Seven lower-priority threads are still open and I did not verify them. Only the Smoke Tests check is still queued or running. This change touches docs and type comments, not the device smoke routes, so that check is likely unrelated. There are no conflicts. Before merge, the pointer to docs/agents/pull-requests.md must be back at issue-tracker.md line 31. |
…otion devicectl is the system CoreDevice tool (/usr/bin/devicectl; the Xcode shim reports the same 651.13.5), so DEVELOPER_DIR does not select it. Version 651.13.5 (Xcode 27.1, 27A9275) has no `device motion` subcommand (#3581), and fold reports fold-pose-dispatched-unverified there (#3587). Point agents at the lit panel from `devicectl device info displays` instead.
There was a problem hiding this comment.
2 issues found across 1 file (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="docs/agents/device-foldable.md">
<violation number="1" location="docs/agents/device-foldable.md:22">
P2: This new exception conflicts with the preceding instruction that `fold` reads the hinge through the unavailable `device motion` command. Update the Pose instructions together so they describe the attempted read and the no-sample refusal consistently.</violation>
<violation number="2" location="docs/agents/device-foldable.md:23">
P2: The panel list identifies a lit screen but does not determine the hinge pose: it cannot distinguish `half-open` from `open`, and no `screen` evidence exists when no panel is lit. Say that panel power is conditional evidence rather than pose verification.</violation>
</file>
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
| - An app interaction. | ||
| Until GHA supports the runtime, Duo coverage remains local. | ||
| devicectl 651.13.5 has no `device motion`. There, `fold` reports `fold-pose-dispatched-unverified`. | ||
| To examine the pose, compare the lit panel from the panel list. |
There was a problem hiding this comment.
P2: The panel list identifies a lit screen but does not determine the hinge pose: it cannot distinguish half-open from open, and no screen evidence exists when no panel is lit. Say that panel power is conditional evidence rather than pose verification.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/device-foldable.md, line 23:
<comment>The panel list identifies a lit screen but does not determine the hinge pose: it cannot distinguish `half-open` from `open`, and no `screen` evidence exists when no panel is lit. Say that panel power is conditional evidence rather than pose verification.</comment>
<file context>
@@ -19,8 +19,8 @@ To list the panels, run `xcrun devicectl device info displays --device <udid>`.
- To examine the angle separately, run:
- `xcrun devicectl device motion hinge-angle --device <udid> --session-timeout 1 --timeout 5`.
+ devicectl 651.13.5 has no `device motion`. There, `fold` reports `fold-pose-dispatched-unverified`.
+ To examine the pose, compare the lit panel from the panel list.
- Touch overlays export at the captured track size.
The compositor checks its output size and non-black content against the raw capture.
</file context>
| To examine the pose, compare the lit panel from the panel list. | |
| When panel power reports one lit panel, compare it with the panel list as evidence; it does not distinguish `half-open` from `open`. |
| - Capture of the active panel. | ||
| - An app interaction. | ||
| Until GHA supports the runtime, Duo coverage remains local. | ||
| devicectl 651.13.5 has no `device motion`. There, `fold` reports `fold-pose-dispatched-unverified`. |
There was a problem hiding this comment.
P2: This new exception conflicts with the preceding instruction that fold reads the hinge through the unavailable device motion command. Update the Pose instructions together so they describe the attempted read and the no-sample refusal consistently.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/agents/device-foldable.md, line 22:
<comment>This new exception conflicts with the preceding instruction that `fold` reads the hinge through the unavailable `device motion` command. Update the Pose instructions together so they describe the attempted read and the no-sample refusal consistently.</comment>
<file context>
@@ -19,8 +19,8 @@ To list the panels, run `xcrun devicectl device info displays --device <udid>`.
Until GHA supports the runtime, Duo coverage remains local.
- To examine the angle separately, run:
- `xcrun devicectl device motion hinge-angle --device <udid> --session-timeout 1 --timeout 5`.
+ devicectl 651.13.5 has no `device motion`. There, `fold` reports `fold-pose-dispatched-unverified`.
+ To examine the pose, compare the lit panel from the panel list.
- Touch overlays export at the captured track size.
</file context>
|
The earlier finding on docs/agents/issue-tracker.md is still open at 0be63cd. The line at https://github.com/callstack/agent-device/blob/0be63cd/docs/agents/issue-tracker.md#L31 reads only "You can publish a dependent PR with its base and blockers explicit." The old pointer to docs/agents/pull-requests.md is gone, and this update did not touch the file. An agent can read that line as permission to merge while prerequisites are open. Please append "Merge-readiness follows docs/agents/pull-requests.md." to it. Not blocking, and you can take or leave it: the Declarations table in docs/agents/code-ownership.md and AGENTS.md no longer name packages/daemon/src/core/daemon-command-registry.ts, which AGENTS.md used to route daemon route ownership and request-policy traits to, so a row for it would restore that. The open inline threads on the code-ownership row, the merge-readiness line, "Decision:" (#3723 (comment)), the weakened ownership rule in AGENTS.md (#3723 (comment)) and the unconditional "Current state:" read (#3723 (comment)) still apply, as do the ones on the DEVELOPER_DIR pin removal (#3723 (comment)), the device-verification line with no check (#3723 (comment)), the 27.1 beta bullet (#3723 (comment)), the dropped narration review target (#3723 (comment)) and the half-open panel list (#3723 (comment)). Three lower-priority threads still apply. The thread at device-foldable.md:22 (#3723 (comment)) no longer applies, because 0be63cd rewrote that hinge-angle instruction, so please resolve it. The failing Repo Guards and Lint/Typecheck checks match main (the |
Summary
Agent docs now use ASD-STE100 Simplified Technical English. Material that misled agents with small context windows is removed.
AGENTS.mdand alldocs/agents/*.md: rewritten in STE, one commit per file. Eight rules that were stated in two places are deleted; each deletion has agit grepproof in its commit.AGENTS.mdnow requires STE for agent docs. It also routes new shared constraints to task docs, not private agent memory, and warns that all worktrees sharegit stash.issue-tracker.md: postDecision:comments when a decision or the scope changes. Post aCurrent state:comment on an umbrella issue after each merge.review.md: read an ADR's Status and "Rules at a glance" first. A bulk rewrite of prose needs a review by another model provider that compares each changed sentence with the base.docs/agents/domain.mdis merged intoCONTEXT.md.cli-flags.mdandcode-ownership.md: the owner paths are corrected.device-foldable.md: the Xcode 27.1 availability notes are removed..device-evidence/folder are untracked. They held task-scoped coordinator instructions.docs/are deleted. The code now contradicts each one.CONTRIBUTING.mdnow says to commit first and then runcheck:affected --run --head <commit>.Byte budgets stay inside their limits:
AGENTS.mdis 3,961 of 4,000,CONTEXT.mdis 10,997 of 11,000, anddocs/agentsis 39,874 of 40,000. The ADR and help rewrites are in separate PRs: #3729, #3730, #3731, and one help PR to come.Validation
27473b1aee.pnpm check:affected --run --head 27473b1aeepassed withexactCommit=true: format, lint, typecheck, layering, fallow, build, vitest-related, and agent-guidance.command-result.ts. No device run is required.