Imported from NeptuneKit/TritonKit (
TritonKit.skills/tritonkit-dev-feedback/SKILL.md). Install upstream withnpx skills add NeptuneKit/TritonKit --skill tritonkit-dev-feedback. Copyright stays with the author.
TritonKit Dev Feedback
Principle
TritonKit is in active development. Treat user needs, bugs, rough edges, missing APIs, confusing behavior, documentation gaps, and compatibility friction as repository feedback.
The agent owns the issue filing action when GitHub access is available. Do not ask the user to file an issue when enough context exists.
Repository: NeptuneKit/TritonKit
Fast workflow
- Clarify only the minimum missing detail needed to avoid filing the wrong issue.
- Check whether an existing open issue clearly covers the same feedback; comment instead of duplicating when appropriate.
- Pick the narrowest reference below and read only that file plus
references/issue-filing.md. - Reproduce or inspect locally when possible. Prefer machine-readable
triton ... --json/--jsonloutput. - Redact private app, account, network, path, log, screenshot, and evidence data before creating public GitHub content.
- Run the public issue preflight in
references/issue-filing.mdimmediately before anygh issue createorgh issue edit. - Create or update the issue with
gh issue create --repo NeptuneKit/TritonKit/gh issue edit --repo NeptuneKit/TritonKit, or report the auth/network blocker with the exact command and body file.
Reference routing
| Current feedback | Read |
|---|---|
| Ordinary bug, docs gap, feature request, or existing evidence to file | references/issue-filing.md |
| iOS embedded runtime hierarchy, snapshot, state, AX, input, WebView, media, semantic provider, or Xcode-run evidence | references/evidence-ios-runtime.md |
| Host-side iOS Simulator, Android Emulator, HarmonyOS / DevEco Emulator, Web Device Hub, install/launch/screenshot/readiness evidence | references/evidence-host-devices.md |
| CLI schema, capabilities, doctor, plan, replay, recovery, output contract, failure code, or taxonomy inconsistency | references/schema-contract-feedback.md |
| User asks how to add TritonKit to an iOS app via SwiftPM/CocoaPods | references/app-integration-ios.md |
| User asks how to use TritonKit with Harmony host-side validation or embedded SDK | references/app-integration-harmony.md |
Always keep
- Triton-first evidence for local simulator/emulator/device work: run
triton status/doctor/capabilities/schema/planor an exact command schema before falling back to rawxcrun,adb,hdc, DevEco CLI, XcodeBuildMCP, orxcodebuild. - Issue bodies must include background, current behavior, expected behavior, reproduction/evidence, and proposed next step.
- Public reports must preserve useful facts: platform/tool versions, TritonKit version, commands, error codes, sanitized logs, and minimal snippets.
- Public reports must not include secrets, tokens, private project names, app names, bundle IDs, team IDs, organizations, users, accounts, emails, phone numbers, internal hosts, absolute private paths, full private logs, or unredacted artifacts.
- Keep implementation work separate from feedback filing unless the user explicitly asks to fix the issue too.
- For iOS Simulator coordinate-tap feedback, record whether the selector was a host form (
sim:<UDID>, raw UUID,booted,current) or a canonical embedded form (triton:ios-simulator:<UDID>/app:<bundle-id>). Host-form coordinate taps must not be reported as embedded runtime actions, and host-HID acknowledgement alone is not proof of the foreground App's business postcondition. - When feedback includes
testrec replay/local-simulated/matrixoutput, reportverdictBoundaryexplicitly. Legacyready,passed, andpassedCountare offline diagnostic compatibility state, not a real runtime verdict or reliability sample; a result without the additive boundary is legacy/unknown. Route real-verdict feedback throughtest import -> test validate -> test runwith redacted placeholders rather than proposing a second testrec executor. - When feedback includes
test reliability-preflight, report it as an offline collection-contract check only.ready_to_collectmust retainwritesEvidence=false,usesRuntime=false, andeligibleForReliabilityGate=false; a negative control is valid only with its frozen assertion failure type and a non-optional read-only assertion plan. It does not establish a target/server/reset receipt, execute a test, or pass a reliability gate. Never include the private collection, plan/evidence paths, UDID, bundle, target, flow, selector, or reset identity in feedback. - When feedback includes receipt-backed reliability collection, distinguish
reliability-reservefromreliability-sample: reserve only writes an immutable private receipt at a fresh operator-owned root and returnsreceiptSha256; operator/CI must keep that hash outside the root. Sample and receipt-backed report require--expect-receipt-sha256 <64-lowercase-hex>and fail before reset/lease/target/runner/evidence scanning when it is missing, malformed, or mismatched. Never call a hash recomputed from the current root an external anchor, and never expose the hash, receipt, root, target, reset, evidence, bundle, or UUID in public feedback. A busy or stale lease is fail-closed (reliability_collection_busy), not an invitation to delete/retry. Neither command may be described as booting, selecting, resetting, installing, launching, stopping, or taking over shared runtime lifecycle. A negative result isok=true/ exit 0 only for terminalfailedwith its frozen deterministic assertion failure type exactly matched; blocked, stopped, launch/primitive/transport/AI failures, missing/wrong failure type, supported nonpass, or negative unexpected pass are still one typedok=false/ exit 1 result, not a second error envelope.reliability --samplesis legacy diagnostic-only and cannot pass the Stage 1 gate. SHA-256 anchor checking is not a signature, identity proof, remote ledger, or hostile-filesystem defense. - For a receipt-bound slot,
reliability-samplewrites privatereliability/identity-chain-v2.jsononly after its runner has finished and the fixed binding/reset/plan/runtime/run components are present. Public report feedback may state only theidentityChainaggregate (state, expected/valid/missing/invalid slot counts,receiptAnchorVerified); it must never expose chain hashes, artifact paths, flow IDs, run IDs, reset identities, target IDs, bundles, or UUIDs.identity_chain_incompletemeans a receipt-declared slot has no v2 chain;identity_chain_invalidmeans chain, terminal proof, frozen identity, component bytes, or manifest declaration no longer agrees. Neither result proves a real reset, real runtime/App execution, history, or hostile-filesystem resistance, and operators must not backfill/retry a claimed slot to manufacture a chain. - For receipt-backed reliability feedback, identify the additive
stage1cohort explicitly:stage1Ameasures only the 60 supported slots (3 × 20 ECR/ORR and strict per-flow count), whilestage1Bmeasures all 61 receipt/control slots (binding/reset/plan/target/manifest/outcome/identity-chain integrity and FER across expected-negative plus any supported nonpass). Legacy--sampleshas model valuestage1=niland omits that JSON field; receipt-backedstage1.gatemust equal the top-level gate, and a Stage 1B integrity blocker alone is notstop_expansion. Public feedback may include only aggregate counts/rates/statuses/blocker codes, never a slot, flow, receipt, path, target, hash, run, or reset identity.
2026-09 issue 合同补充
xcode test --jsonl默认 compact;完整 raw 日志在 artifact,显式--progress full才转发。按子命令 schema 选参数,xcode run不接受--progress。- DerivedData 存在不证明 cache 命中。
reuseVerification=unknown,incrementalExpected=false仅表示没有验证过的预期;读取observedBuild.taskLogCounts/logCoverage,不擅自称增量或全量。 - 排查 repo-local 构建缓存占用时先运行
triton xcode derived-data inspect --root .triton/DerivedData --json;triton xcode derived-data cleanup --json只做 dry-run,确认条目和预计释放量后才允许显式追加--confirm。仅接受 canonical repo-local.triton/DerivedData或用户全局 Xcode DerivedData root,禁止清理源码/配置/凭据路径,也不要在 Xcode 正在构建时清理。 debug attrs --oid支持 UIView/CALayer oid;UILabel 的有效字体/颜色与 UTF-16 run 有界输出,正文预览和 run 都要检查截断字段。- collection cell 激活尊重 allowsSelection/delegate,success 只证明公开 callback,必须验证业务后置条件。
act tap --duration不支持长按,提前 typed unsupported;embedded longPress 和非滚动手势也不伪造成功,使用 App 显式注册的 semantic DEBUG action 或检查实际 provider 能力。 - Harmony ArkWeb bridge-call 需可达 DevTools socket 与页面
window.__tritonBridge.methods自有函数白名单;函数接收(params, complete, reject),支持返回值/Promise/callback。明确选中 CDP page ID,stale/ambiguous 失败关闭;不把 CDP page ID 当导航 session 验证,清理失败也可能发生在页面方法已执行之后,重试前先验业务状态。