Repository navigation
Cycle 4 research gate: rank evidence-backed AI and gaming opportunities #23
Description
Goal
Run Cycle 4 as a bounded, evidence-led cycle: refresh AI and gaming workflow pain reports, audit current OpenController ownership and gaps, rank the candidate backlog, then select one measurable build slice or document a no-build decision. End with independently reviewed implementation, required checks, a merge if justified, roadmap closeout, and the next research gate. Candidate issues are a research backlog, not build approval.
Starting state
- Cycle 3 implementation #14 merged in PR #19 at f2baa6b; release checks passed on the integrated main state.
- Cycle 3 gate #16 closed after PR docs: close Cycle 3 and open Cycle 4 gate #24. This Cycle 4 gate completed its selection and closeout in PR docs: close Cycle 4 and open Cycle 5 research gate #30 after selected issue Seed Agent Fighter local decisions for repeatable evaluation #22 merged in PR feat(agent-fighter): seed local policy decisions #25.
- Existing deferred leads: #10 macOS physical input for OBS and #15 Agent Fighter keyboard remapping. Reconsider them only if refreshed evidence or feasibility changes their fit.
- Selected issue #22 merged in PR #25 at 8eb744c. Roadmap closeout PR #30 closed this gate and opened Cycle 5 gate #29, which is now unblocked. Candidates #20 and #21 remain deferred.
Dated source seeds (2026-10-04 refresh)
These are individual public reports and adjacent workflow requests. They do not estimate prevalence or prove an OpenController defect. Candidate descriptions link each report to its limits.
| Source/date | Direct observation | Relevance and limit |
|---|---|---|
| Quasar #348, 2026-09-23 | A user reported a Steam virtual gamepad mapping differently from browser recognition; an attempted host edge fix blocked sessions until a malformed controller label was corrected. | Cross-layer controller changes need end-to-end evidence. Another project; does not establish an OpenController bug or authorize testing every consumer. |
| Steam for Linux #13616, 2026-09-14 | The 2026 Steam Controller worked in Steam, desktop, and other games but failed in Spyro. After troubleshooting, PS5 and GameSir G7 controllers also failed specifically in Spyro until Steam Input was disabled; re-enabling it broke those two again, while the Steam Controller still failed either way (2026-09-20 comment). | One report of consumer-specific forwarding outside this SDK's ownership. |
| Fami-Pixel #1, 2026-09-13 | Describes frame-aware game control, reset/action/release, deterministic frame stepping, and a structured frame/action/observation trace. | Adjacent game-agent workflow, not evidence of OpenController demand. Supports investigating reproducibility/trace requirements. |
| STS2 Harness #125, 2026-09-13 | Requests multi-model benchmark suites over a frozen seed corpus. | One adjacent project request. It does not prove OpenController runs or match outcomes can be deterministic. |
| OpenGamepadUI #551, 2026-09-23 | Requests a controller-disable option because duplicate controller devices conflict on a TV setup. | Adjacent device-selection pain; upstream UI/host behavior, not a request about OpenController. |
| OpenAI developer forum #1402066, 2026-09-29 | One gamer says manual game-state descriptions and screenshots are cumbersome. | Observation/perception is outside this controller SDK's current ownership; do not expand scope on this signal alone. |
| OpenAI developer forum #1401100, 2026-09-26 | A user describes a Pokémon Silver session streamed with OBS and says Computer Use limits were the obstacle; the session itself worked. | Use-case interest, not evidence for physical gamepad capture or an OpenController limitation. |
| OpenAI developer forum #1401136, 2026-09-27 | One post requests game-integrated limited action APIs for an AI player. | Low-specificity product request; not evidence of an SDK transport pain. |
| Steam for Linux #13677, 2026-10-02 | A Legion Go 2 user reports controller detection trouble after startup/wake with few system details and no replies. | Single vague host report; low confidence and no demonstrated OpenController ownership. |
| Wandering Inn RPG #527, 2026-09-05; TURN #907, 2026-09-15 | Project backlog/spec requests mention configurable game key bindings. | Adjacent requests, not reports about Agent Fighter; player two already has arrow movement. Keep #15 deferred. |
| DualSense Studio #2, 2026-09-29 | Chrome detected a Bluetooth DualSense while OBS/CEF Gamepad API did not; the author requested an external input bridge. | One direct report to another project. GitHub searches found no independent matching report; macOS permissions/API feasibility remains unknown. Keep #10 deferred. |
Source coverage limits
- GitHub issues/discussions, Steam for Linux, Hacker News, and OpenAI Developer Community were reachable for targeted searches. Reddit returned HTTP 403, so no Reddit post was reviewed. Steam Community search returned a generic page without a verifiable dated result.
- Search was targeted, not exhaustive. Threads are individual reports or requests; comment counts, search results, and engagement are not prevalence estimates. Several sources concern adjacent projects or upstream SDL/Steam/browser/game behavior.
- Do not claim OpenController can repair Steam, SDL, OBS, browser, or game-specific behavior without a reproducible repository-owned failure.
Cycle 4 research decision (2026-10-04)
| Decision | Candidate | Evidence/fit | Effort and risk |
|---|---|---|---|
| Selected | #22 seeded local-policy evaluation | Direct code gap: local Agent Fighter decisions use Math.random; existing headless baselines were deferred because outcomes varied. Adjacent benchmark requests support investigating repeatability, not a market trend. | Medium/high, about 3–5 days. Seeded decisions may not make browser/game outcomes stable. First prove one deterministic scenario. |
| Deferred | #20 native-test failure cleanup | Direct code-path question: the CLI native test disconnect follows the full happy-path command sequence; tests focus on the happy path. Adjacent host-startup failures are not OpenController incident reports. | Low/medium, about 1–2 days. Confirm partial-connect and adapter cleanup semantics before changing behavior. |
| Deferred | #21 host/game evidence matrix | Cross-layer sources support clearer host/consumer validation boundaries; existing profile-to-report conformance and native doctor/test already cover part of this space. Avoid duplicating those checks. | Medium, about 2–4 days; manual hardware/OS evidence may be unavailable. |
| Deferred | #10 physical input for OBS, #15 keyboard remapping | Weak target-product evidence and meaningful feasibility/scope risks remain. | Do not select without stronger direct fit evidence or an API feasibility result. |
The repository audit inspected current main f2baa6b, including native doctor/test commands and tests, profile-to-report conformance docs, and the Agent Fighter local policy and headless runner. It confirmed the native test command already covers the happy path and the compatibility matrix could duplicate existing conformance/doctor coverage. The code gap for #22 is direct: local policy decisions use unseeded Math.random and the headless runner has no seed input/output. The external Fami-Pixel and STS2 requests are adjacent signals, not prevalence evidence.
Selection: #22, seeded local-policy decisions for the headless runner. Add an isolated seeded RNG for the local policy, accept/report the seed for runner-spawned servers, and test identical decisions for identical seed plus observation sequence. Do not claim whole-match determinism, include OpenAI outputs, or add stored baselines in this slice. If a stable local-policy scenario cannot be demonstrated, record the limit and defer baselines. The estimated effort remains medium (3–5 days) with browser/timing risks.
Deferred: #20 and #21. #20 is a real code-path cleanup question but has weak external fit evidence; revisit with a native-helper failure reproducer. #21's value is plausible, but existing profile conformance and native doctor/test already cover parts of it, and physical host evidence is not available in normal CI. #10 and #15 remain deferred.
Research, audit, and decision checklist
- Refresh dated reports across AI developer forums, gaming communities, GitHub issues/discussions, Steam, Hacker News, Reddit if reachable, and accessibility communities if relevant. Keep direct observations separate from interpretation; Reddit and Steam Community gaps are explicit.
- Record source URLs/dates, workflow, failure/request, stated workaround or absence, evidence strength, and coverage limits in the source table and candidate issues; make no prevalence estimate.
- Audit current main, native doctor/test, profile-to-report tests/docs, Agent Fighter local-policy/headless runner, and merged work to avoid duplicates.
- Rank Explore host-side physical gamepad input for OBS overlays #10, Make Agent Fighter keyboard bindings configurable #15, Preserve cleanup and failure context in native test #20, Track tested and unverified host and game compatibility #21, and Seed Agent Fighter local decisions for repeatable evaluation #22 by user value, evidence strength, repository ownership, implementation cost, and risk; select Seed Agent Fighter local decisions for repeatable evaluation #22 and defer the others.
- Select bounded issue Seed Agent Fighter local decisions for repeatable evaluation #22 and define its acceptance, non-goals, dependency DAG, validation, and determinism limits before implementation begins.
- Unblock selected Seed Agent Fighter local decisions for repeatable evaluation #22 and make this gate wait on it; move deferred Preserve cleanup and failure context in native test #20/Track tested and unverified host and game compatibility #21 outside the active milestone.
- Delegate independent research, implementation, integration, and review to gpt-6-luna agents with separate file/package ownership; use fresh worktrees, fetch before integration, and keep each PR mergeable against its declared parent.
- Independently review the integrated result, run relevant checks, merge in DAG order only when review/checks pass, then update the roadmap and open the next gate in PR docs: close Cycle 4 and open Cycle 5 research gate #30.
Cycle DAG
flowchart TD
A[Cycle 3 closeout PR #24 merged; gate #16 closed] --> B[Cycle 4 evidence refresh and repository audit]
B --> C[Rank candidates and select #22]
C --> D[Implement seeded local-policy decisions]
D --> E[Independent Luna review and required checks]
E --> F[PR #25 merged to main]
F --> G[PR #30 roadmap closeout and Cycle 5 gate #29]
G --> H[Close Cycle 4 gate #23 and unblock #29]
Acceptance
- Current code and previous merges were audited before a candidate is selected.
- Sources are dated and linked; upstream behavior, external interest, and OpenController-owned gaps are not conflated.
- The chosen work has measurable acceptance and bounded claims, or the gate records a reasoned no-build decision.
- Implementation is independently reviewed and required checks pass before merge.
- Cycle 4 closes only after its selected implementation is reviewed and merged (or a no-build decision is recorded), the roadmap is updated, and the next cycle gate exists.
Activity