lazycodex-ai 5.1.61 → 5.1.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +1722 -281
- package/dist/cli/service-auth/closed-device-login.fixture.d.ts +1 -0
- package/dist/cli/service-auth/credential-lock.d.ts +8 -2
- package/dist/cli/service-auth/index.d.ts +2 -1
- package/dist/cli/service-auth/keychain-helper/access.d.ts +27 -0
- package/dist/cli/service-auth/keychain-helper/approval-cache.d.ts +51 -0
- package/dist/cli/service-auth/keychain-helper/client.d.ts +68 -0
- package/dist/cli/service-auth/keychain-helper/creator-handoff.d.ts +31 -0
- package/dist/cli/service-auth/keychain-helper/darwin-backend.d.ts +75 -0
- package/dist/cli/service-auth/keychain-helper/darwin-read.d.ts +46 -0
- package/dist/cli/service-auth/keychain-helper/darwin-store.d.ts +28 -0
- package/dist/cli/service-auth/keychain-helper/fake-keychain.test-support.d.ts +85 -0
- package/dist/cli/service-auth/keychain-helper/location.d.ts +28 -0
- package/dist/cli/service-auth/keychain-helper/migration.d.ts +20 -0
- package/dist/cli/service-auth/keychain-helper/owner-marker.d.ts +7 -0
- package/dist/cli/service-auth/keychain-helper/pin.d.ts +20 -0
- package/dist/cli/service-auth/keychain-helper/process-copy.test-support.d.ts +3 -0
- package/dist/cli/service-auth/keychain-helper/process-state.d.ts +19 -0
- package/dist/cli/service-auth/keychain-helper/prompt-lock.d.ts +14 -0
- package/dist/cli/service-auth/keychain-helper/recovery.d.ts +34 -0
- package/dist/cli/service-auth/keychain-helper/runtime-capabilities.d.ts +13 -0
- package/dist/cli/service-auth/keychain-helper/secrets-gate.d.ts +4 -0
- package/dist/cli/service-auth/keychain-helper/signature.d.ts +17 -0
- package/dist/cli/service-auth/keychain-helper/store-binding.d.ts +46 -0
- package/dist/cli/service-auth/keystore.d.ts +18 -3
- package/dist/cli/service-auth/session.d.ts +29 -2
- package/dist/cli/service-auth/sync-pin-retire.d.ts +7 -0
- package/dist/cli-node/index.js +1722 -281
- package/package.json +1 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lcx/skills/lcx-doctor/SKILL.md +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +2 -0
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/src/directive-content.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/directive.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +10 -10
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +6 -3
- package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +2 -2
- package/packages/omo-codex/plugin/skills/ast-grep/README.md +4 -4
- package/packages/omo-codex/plugin/skills/ast-grep/SKILL.md +10 -8
- package/packages/omo-codex/plugin/skills/ast-grep/references/cli.md +4 -3
- package/packages/omo-codex/plugin/skills/ast-grep/references/patterns.md +5 -5
- package/packages/omo-codex/plugin/skills/ast-grep/references/pitfalls.md +3 -3
- package/packages/omo-codex/plugin/skills/ast-grep/references/recipes.md +6 -4
- package/packages/omo-codex/plugin/skills/ast-grep/references/yaml-rules.md +3 -3
- package/packages/omo-codex/plugin/skills/ast-grep/scripts/ast_grep_helper.py +3 -3
- package/packages/omo-codex/plugin/skills/browser/SKILL.md +2 -3
- package/packages/omo-codex/plugin/skills/browser/references/owned-engine/README.md +1 -1
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +1 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +2 -1
- package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +8 -6
- package/packages/omo-codex/plugin/skills/data-scientist/references/placement.md +9 -5
- package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +3 -3
- package/packages/omo-codex/plugin/skills/data-scientist/references/visualization.md +19 -4
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +5 -5
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +2 -2
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/06-fix.md +2 -0
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/09-cleanup.md +2 -2
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/partial-runtime-evidence.md +1 -1
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/bundled-js-binary.md +1 -1
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +1 -1
- package/packages/omo-codex/plugin/skills/debugging/references/tools/browser-qa.md +1 -2
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +4 -4
- package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +2 -2
- package/packages/omo-codex/plugin/skills/frontend/references/design/component-catalogs.md +1 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +2 -2
- package/packages/omo-codex/plugin/skills/frontend/references/design/print-paged-media.md +1 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/react-dev-tooling-skill.md +1 -1
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +5 -5
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +2 -2
- package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +1 -2
- package/packages/omo-codex/plugin/skills/frontend/references/perfection/react-perf-tooling.md +27 -8
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/lighthouse-audit.py +0 -1
- package/packages/omo-codex/plugin/skills/git-master/SKILL.md +12 -2
- package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/lcx-doctor/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/lsp-setup/SKILL.md +24 -15
- package/packages/omo-codex/plugin/skills/lsp-setup/references/bash/README.md +3 -3
- package/packages/omo-codex/plugin/skills/lsp-setup/references/c-cpp/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/csharp/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/dart/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/elixir/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/go/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/haskell/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/java/README.md +3 -3
- package/packages/omo-codex/plugin/skills/lsp-setup/references/julia/README.md +3 -3
- package/packages/omo-codex/plugin/skills/lsp-setup/references/kotlin/README.md +4 -4
- package/packages/omo-codex/plugin/skills/lsp-setup/references/lua/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/php/README.md +3 -3
- package/packages/omo-codex/plugin/skills/lsp-setup/references/python/README.md +13 -12
- package/packages/omo-codex/plugin/skills/lsp-setup/references/ruby/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/rust/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/swift/README.md +4 -4
- package/packages/omo-codex/plugin/skills/lsp-setup/references/terraform/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/typescript/README.md +3 -3
- package/packages/omo-codex/plugin/skills/lsp-setup/references/yaml/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/references/zig/README.md +2 -2
- package/packages/omo-codex/plugin/skills/lsp-setup/scripts/detect-lsp.ts +1 -1
- package/packages/omo-codex/plugin/skills/lsp-setup/scripts/lsp-server-table.ts +3 -2
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +5 -5
- package/packages/omo-codex/plugin/skills/programming/references/code-smells.md +2 -2
- package/packages/omo-codex/plugin/skills/programming/references/go/README.md +3 -3
- package/packages/omo-codex/plugin/skills/programming/references/python/README.md +8 -8
- package/packages/omo-codex/plugin/skills/programming/references/python/data-processing.md +9 -9
- package/packages/omo-codex/plugin/skills/programming/references/python/libraries.md +3 -3
- package/packages/omo-codex/plugin/skills/programming/references/python/one-liners.md +1 -1
- package/packages/omo-codex/plugin/skills/programming/references/python/pyproject-strict.md +1 -1
- package/packages/omo-codex/plugin/skills/programming/references/rust/libraries.md +2 -2
- package/packages/omo-codex/plugin/skills/programming/references/rust-ub/README.md +3 -3
- package/packages/omo-codex/plugin/skills/programming/references/typescript/README.md +5 -5
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/new-project.ts +1 -1
- package/packages/omo-codex/plugin/skills/refactor/SKILL.md +36 -36
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +6 -6
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +11 -8
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +4 -4
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/README.md +2 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/career.md +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/web.md +4 -4
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +2 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +17 -18
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/fallback.md +10 -6
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/jina.md +12 -12
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/naver.md +3 -3
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/playwright.md +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/rss.md +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/tls-impersonate.md +12 -7
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +2 -0
- package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +9 -6
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +10 -10
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +2 -2
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +4 -4
- package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +5 -5
- package/packages/omo-codex/plugin/skills/ulw-research/references/report-visualization.md +2 -2
- package/packages/omo-codex/plugin/skills/ulw-research/references/research-collection.md +2 -2
- package/packages/omo-codex/plugin/skills/ulw-research/references/unit-rules.md +2 -2
- package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +1 -1
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +5 -5
- package/packages/omo-codex/plugin/skills/visual-qa/references/browser-setup.md +4 -2
- package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +2 -0
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +7 -3
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
- package/packages/prompts-core/prompts/ultrawork/codex.md +2 -0
- package/packages/shared-skills/skills/ast-grep/AGENTS.md +2 -2
- package/packages/shared-skills/skills/ast-grep/README.md +4 -4
- package/packages/shared-skills/skills/ast-grep/SKILL.md +10 -8
- package/packages/shared-skills/skills/ast-grep/references/cli.md +4 -3
- package/packages/shared-skills/skills/ast-grep/references/patterns.md +5 -5
- package/packages/shared-skills/skills/ast-grep/references/pitfalls.md +3 -3
- package/packages/shared-skills/skills/ast-grep/references/recipes.md +6 -4
- package/packages/shared-skills/skills/ast-grep/references/yaml-rules.md +3 -3
- package/packages/shared-skills/skills/ast-grep/scripts/ast_grep_helper.py +3 -3
- package/packages/shared-skills/skills/browser/SKILL.md +2 -3
- package/packages/shared-skills/skills/browser/references/owned-engine/README.md +1 -1
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +1 -1
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +2 -1
- package/packages/shared-skills/skills/data-scientist/SKILL.md +8 -6
- package/packages/shared-skills/skills/data-scientist/references/placement.md +9 -5
- package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +3 -3
- package/packages/shared-skills/skills/data-scientist/references/visualization.md +19 -4
- package/packages/shared-skills/skills/debugging/SKILL.md +5 -5
- package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +2 -2
- package/packages/shared-skills/skills/debugging/references/methodology/06-fix.md +2 -0
- package/packages/shared-skills/skills/debugging/references/methodology/09-cleanup.md +2 -2
- package/packages/shared-skills/skills/debugging/references/methodology/partial-runtime-evidence.md +1 -1
- package/packages/shared-skills/skills/debugging/references/runtimes/bundled-js-binary.md +1 -1
- package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +1 -1
- package/packages/shared-skills/skills/debugging/references/tools/browser-qa.md +1 -2
- package/packages/shared-skills/skills/frontend/SKILL.md +4 -4
- package/packages/shared-skills/skills/frontend/references/design/README.md +2 -2
- package/packages/shared-skills/skills/frontend/references/design/component-catalogs.md +1 -1
- package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +2 -2
- package/packages/shared-skills/skills/frontend/references/design/print-paged-media.md +1 -1
- package/packages/shared-skills/skills/frontend/references/design/react-dev-tooling-skill.md +1 -1
- package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +5 -5
- package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +2 -2
- package/packages/shared-skills/skills/frontend/references/perfection/README.md +1 -2
- package/packages/shared-skills/skills/frontend/references/perfection/react-perf-tooling.md +27 -8
- package/packages/shared-skills/skills/frontend/scripts/perfection/lighthouse-audit.py +0 -1
- package/packages/shared-skills/skills/git-master/SKILL.md +12 -2
- package/packages/shared-skills/skills/init-deep/SKILL.md +1 -1
- package/packages/shared-skills/skills/lsp-setup/SKILL.md +24 -15
- package/packages/shared-skills/skills/lsp-setup/references/bash/README.md +3 -3
- package/packages/shared-skills/skills/lsp-setup/references/c-cpp/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/csharp/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/dart/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/elixir/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/go/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/haskell/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/java/README.md +3 -3
- package/packages/shared-skills/skills/lsp-setup/references/julia/README.md +3 -3
- package/packages/shared-skills/skills/lsp-setup/references/kotlin/README.md +4 -4
- package/packages/shared-skills/skills/lsp-setup/references/lua/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/php/README.md +3 -3
- package/packages/shared-skills/skills/lsp-setup/references/python/README.md +13 -12
- package/packages/shared-skills/skills/lsp-setup/references/ruby/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/rust/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/swift/README.md +4 -4
- package/packages/shared-skills/skills/lsp-setup/references/terraform/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/typescript/README.md +3 -3
- package/packages/shared-skills/skills/lsp-setup/references/yaml/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/references/zig/README.md +2 -2
- package/packages/shared-skills/skills/lsp-setup/scripts/detect-lsp.ts +1 -1
- package/packages/shared-skills/skills/lsp-setup/scripts/lsp-server-table.ts +3 -2
- package/packages/shared-skills/skills/programming/SKILL.md +5 -5
- package/packages/shared-skills/skills/programming/references/code-smells.md +2 -2
- package/packages/shared-skills/skills/programming/references/go/README.md +3 -3
- package/packages/shared-skills/skills/programming/references/python/README.md +8 -8
- package/packages/shared-skills/skills/programming/references/python/data-processing.md +9 -9
- package/packages/shared-skills/skills/programming/references/python/libraries.md +3 -3
- package/packages/shared-skills/skills/programming/references/python/one-liners.md +1 -1
- package/packages/shared-skills/skills/programming/references/python/pyproject-strict.md +1 -1
- package/packages/shared-skills/skills/programming/references/rust/libraries.md +2 -2
- package/packages/shared-skills/skills/programming/references/rust-ub/README.md +3 -3
- package/packages/shared-skills/skills/programming/references/typescript/README.md +5 -5
- package/packages/shared-skills/skills/programming/scripts/typescript/new-project.ts +1 -1
- package/packages/shared-skills/skills/refactor/SKILL.md +36 -36
- package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +6 -6
- package/packages/shared-skills/skills/review-work/SKILL.md +2 -2
- package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +11 -8
- package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +4 -4
- package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/README.md +2 -2
- package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/career.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/web.md +4 -4
- package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +2 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +17 -18
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/fallback.md +10 -6
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/jina.md +12 -12
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/naver.md +3 -3
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/playwright.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/rss.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/tls-impersonate.md +12 -7
- package/packages/shared-skills/skills/ulw-execute/SKILL.md +9 -6
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +2 -2
- package/packages/shared-skills/skills/ulw-research/SKILL.md +5 -5
- package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +5 -5
- package/packages/shared-skills/skills/ulw-research/references/report-visualization.md +2 -2
- package/packages/shared-skills/skills/ulw-research/references/research-collection.md +2 -2
- package/packages/shared-skills/skills/ulw-research/references/unit-rules.md +2 -2
- package/packages/shared-skills/skills/visual-qa/AGENTS.md +1 -1
- package/packages/shared-skills/skills/visual-qa/SKILL.md +5 -5
- package/packages/shared-skills/skills/visual-qa/references/browser-setup.md +4 -2
|
@@ -43,9 +43,9 @@ foo === foo.bar
|
|
|
43
43
|
|
|
44
44
|
Useful for finding redundant comparisons, double assignments, etc.
|
|
45
45
|
|
|
46
|
-
### `$$$` is
|
|
46
|
+
### `$$$` is lazy
|
|
47
47
|
|
|
48
|
-
When you write `foo($$$A, b, $$$C)`, the matcher does **not** backtrack or try every possible split. It
|
|
48
|
+
When you write `foo($$$A, b, $$$C)`, the matcher does **not** backtrack or try every possible split. It fills `$$$A` only until the rest of the pattern can match — the first `b` here — then everything left goes into `$$$C`. On `foo(a, c, b, b, c)` that is `A=[a, c]` and `C=[b, c]`, never the longer `A=[a, c, b]`.
|
|
49
49
|
|
|
50
50
|
```ts
|
|
51
51
|
// Pattern
|
|
@@ -116,11 +116,11 @@ Two tools help you confirm a pattern parses the way you expect:
|
|
|
116
116
|
# Print the AST of the pattern itself
|
|
117
117
|
sg run -p 'console.log($MSG)' --lang ts --debug-query=ast
|
|
118
118
|
|
|
119
|
-
# Print the
|
|
120
|
-
sg run -p '
|
|
119
|
+
# Print the CST of code copied from a file (great for figuring out kind names)
|
|
120
|
+
sg run -p 'function f(x: number) { return x + 1 }' --lang ts --debug-query=cst src/example.ts 2>&1 >/dev/null | head -40
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
-
`--debug-query=ast` shows the named AST nodes only (cleaner). `--debug-query=cst` shows everything including punctuation. Both
|
|
123
|
+
`--debug-query=ast` shows the named AST nodes only (cleaner). `--debug-query=cst` shows everything including punctuation. Both dump the tree of the **pattern** (not of the searched files) to stderr, so they don't interfere with stdout JSON; redirect `2>&1 >/dev/null` to pipe the dump. To learn a file's node kinds, paste that file's code as the pattern.
|
|
124
124
|
|
|
125
125
|
The web playground is also fast: <https://ast-grep.github.io/playground.html>.
|
|
126
126
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Pitfalls — what breaks patterns and how to fix them
|
|
2
2
|
|
|
3
|
-
This is the failure-mode field guide. The `scripts/ast_grep_helper.py validate` subcommand mechanically checks
|
|
3
|
+
This is the failure-mode field guide. The `scripts/ast_grep_helper.py validate` subcommand mechanically checks the §1 items for backslash escapes, `.*`/`.+`, character classes, and `|` alternation before calling `sg` (it does not detect `^`/`$` anchors), plus the missing-body and trailing-colon cases from §2; the rest are lower-frequency but still common.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -126,9 +126,9 @@ If you actually want two independent captures, name them differently: `$X = $Y`.
|
|
|
126
126
|
|
|
127
127
|
---
|
|
128
128
|
|
|
129
|
-
## 6. `$$$` is
|
|
129
|
+
## 6. `$$$` is lazy and never backtracks
|
|
130
130
|
|
|
131
|
-
`$$$` does **not** backtrack. It
|
|
131
|
+
`$$$` does **not** backtrack. It stops at the first node that lets the rest of the pattern match, then commits — on `foo($$$A, b, $$$C)` against `foo(a, c, b, b, c)`, `$$$A` is `[a, c]`, not `[a, c, b]`. If your pattern needs more to land in `$$$A`, structure it differently:
|
|
132
132
|
|
|
133
133
|
```ts
|
|
134
134
|
// You want "match foo($X), where $X is any single arg"
|
|
@@ -5,11 +5,13 @@ Every pattern in this file has been verified against the canonical syntax. They
|
|
|
5
5
|
Use them with the helper:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
python3 scripts/ast_grep_helper.py search '<PATTERN>' [path] --lang <LANG>
|
|
9
|
+
python3 scripts/ast_grep_helper.py replace '<PATTERN>' '<REWRITE>' [path] --lang <LANG> # dry-run
|
|
10
|
+
python3 scripts/ast_grep_helper.py replace '<PATTERN>' '<REWRITE>' [path] --lang <LANG> --apply
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
+
Put any `[path]` BEFORE `--lang`: the helper's `paths` argument is `nargs='*'`, and on Python 3.9 (the stock macOS `python3`, which the helper supports) a positional after `--lang` is rejected with `unrecognized arguments`. A pattern or rewrite containing a literal `|` (e.g. `$T | None`) is refused by the helper's alternation check — run two calls, or pass `--force` to reach `sg` anyway.
|
|
14
|
+
|
|
13
15
|
Or directly:
|
|
14
16
|
|
|
15
17
|
```bash
|
|
@@ -132,7 +134,7 @@ sg run -p 'print($$$A)' -r 'logger.info($$$A)' --lang py --update-all .
|
|
|
132
134
|
# Optional[X] -> X | None
|
|
133
135
|
sg run -p 'Optional[$T]' -r '$T | None' --lang py --update-all .
|
|
134
136
|
|
|
135
|
-
# from typing import List ->
|
|
137
|
+
# from typing import List -> annotate for manual removal (built-in list works in 3.9+)
|
|
136
138
|
sg run -p 'from typing import List' -r 'from typing import List # TODO: remove, use list' --lang py --update-all .
|
|
137
139
|
```
|
|
138
140
|
|
|
@@ -488,14 +488,14 @@ ignores:
|
|
|
488
488
|
- '**/__generated__/**'
|
|
489
489
|
```
|
|
490
490
|
|
|
491
|
-
If omitted, the rule runs on every file matching its `language`.
|
|
491
|
+
If omitted, the rule runs on every file matching its `language`. `sgconfig.yml` has no project-wide `files`/`ignores` to override; its `languageGlobs` only changes which language a file parses as. To narrow a whole scan, pass `--globs` to `sg scan`.
|
|
492
492
|
|
|
493
493
|
Object form (rare):
|
|
494
494
|
|
|
495
495
|
```yaml
|
|
496
496
|
files:
|
|
497
|
-
-
|
|
498
|
-
|
|
497
|
+
- glob: 'src/**/*.ts'
|
|
498
|
+
caseInsensitive: true
|
|
499
499
|
```
|
|
500
500
|
|
|
501
501
|
---
|
|
@@ -27,13 +27,13 @@ USAGE
|
|
|
27
27
|
|
|
28
28
|
EXAMPLES
|
|
29
29
|
# Find all console.log calls in TypeScript
|
|
30
|
-
ast_grep_helper.py search 'console.log($MSG)' --lang ts
|
|
30
|
+
ast_grep_helper.py search 'console.log($MSG)' src/ --lang ts
|
|
31
31
|
|
|
32
32
|
# Migrate console.log -> logger.info (dry-run preview)
|
|
33
|
-
ast_grep_helper.py replace 'console.log($MSG)' 'logger.info($MSG)' --lang ts
|
|
33
|
+
ast_grep_helper.py replace 'console.log($MSG)' 'logger.info($MSG)' src/ --lang ts
|
|
34
34
|
|
|
35
35
|
# Apply the same replacement
|
|
36
|
-
ast_grep_helper.py replace 'console.log($MSG)' 'logger.info($MSG)' --lang ts
|
|
36
|
+
ast_grep_helper.py replace 'console.log($MSG)' 'logger.info($MSG)' src/ --lang ts --apply
|
|
37
37
|
|
|
38
38
|
# Validate a pattern offline (no sg call, no filesystem access)
|
|
39
39
|
ast_grep_helper.py validate '\\w+' --lang ts
|
|
@@ -117,9 +117,8 @@ changing the extension's automation settings.
|
|
|
117
117
|
out everywhere. No flow here needs it.
|
|
118
118
|
- **`focused: false` by default.** The browser belongs to someone who is probably using it.
|
|
119
119
|
- **One short, named session per task,** always stopped.
|
|
120
|
-
- **Bot-scored or WAF targets go
|
|
121
|
-
capture on every tab it drives, which is a known automation signal
|
|
122
|
-
`connectCloakProfile()` is the stealth path.
|
|
120
|
+
- **Bot-scored or WAF targets never go through the attached engine** — route them to the `ultimate-browsing` skill, whose browser tier is the owned engine (`connectCloakProfile()`). The attached engine's daemon enables console
|
|
121
|
+
capture on every tab it drives, which is a known automation signal.
|
|
123
122
|
|
|
124
123
|
## Where the rest lives
|
|
125
124
|
|
|
@@ -58,5 +58,5 @@ or text), not a timer; `goto(url, { waitUntil: "commit" })` is the escape hatch
|
|
|
58
58
|
- [network.md](network.md) — `createNetworkSnoop`, `collectWhileScrolling`, `createTrace`, `createRoutes`
|
|
59
59
|
- [frames-and-humans.md](frames-and-humans.md) — `snapshotWithFrames`, `describeLayers`, dialog policy, `emulate`, `requestHuman`
|
|
60
60
|
|
|
61
|
-
The
|
|
61
|
+
The omowright repository's own agent guide and its `presets/*`
|
|
62
62
|
is the authoritative, longer treatment of each; these pages are the routing summary.
|
|
@@ -60,4 +60,4 @@ python3 -B scripts/find-agent-sessions.py read <session-id>
|
|
|
60
60
|
pytest scripts/tests
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
- Parent:
|
|
63
|
+
- Parent (source checkout only, not shipped with the installed skill): `packages/shared-skills/AGENTS.md`.
|
|
@@ -80,10 +80,11 @@ Each `match_reasons` entry includes `query`, `platform`, `field`, and `snippet`,
|
|
|
80
80
|
| `--cwd` | Working-directory substring |
|
|
81
81
|
| `--model` | Model substring |
|
|
82
82
|
| `--limit` | Maximum results |
|
|
83
|
-
| `--query` | Repeatable search query; multiple queries return per-query groups plus a de-duplicated merged result list |
|
|
84
83
|
| `--workers` | Parallel worker count for platform scans, transcript parsing, OpenCode message joins, and multi-query matching |
|
|
85
84
|
| `--include-subagents` | Include subagent/child sessions as standalone `list`/`search` results (hidden by default) |
|
|
86
85
|
|
|
86
|
+
`search` (alias `find`) also takes `--query`: a repeatable search query; multiple queries return per-query groups plus a de-duplicated merged result list. `list` ignores `--query` and positional text.
|
|
87
|
+
|
|
87
88
|
When `--platform` is omitted, the finder searches every registered platform in parallel. Each optional platform first probes fixed, known transcript roots and returns immediately when the product has no local store, so broad default searches stay cheap. Use repeatable flags such as `--platform openclaw --platform droid` only when narrowing. Comma-separated platform values are intentionally unsupported.
|
|
88
89
|
|
|
89
90
|
For OpenCode, the finder uses `opencode db path` plus direct SQLite queries first, then `opencode session list --format json` as a fallback. It avoids heavy `messages/` or `parts/` scans during normal list/search, and only falls back to file joins when the OpenCode DB/CLI is unavailable or explicit `--root` values request a nonstandard store.
|
|
@@ -42,8 +42,9 @@ Per-surface patterns and pitfalls: read `references/execution-surfaces.md` befor
|
|
|
42
42
|
older spellings.
|
|
43
43
|
- **numpy** when numeric work goes beyond SQL/DataFrame aggregation: statistical tests,
|
|
44
44
|
linear algebra, FFT, random sampling.
|
|
45
|
-
- **matplotlib** for
|
|
46
|
-
|
|
45
|
+
- **matplotlib** for charts in a kernel, a file or a document; a chart shown inline beside a
|
|
46
|
+
reply is drawn in HTML instead. Read `references/visualization.md` first either way; it
|
|
47
|
+
carries the quality bar, the inline case and a mandatory visual check.
|
|
47
48
|
|
|
48
49
|
Performance folklore ("X is Nx faster at filtering") varies with data shape, cardinality,
|
|
49
50
|
and hardware. When the engine choice materially matters, measure on the actual data instead
|
|
@@ -65,10 +66,11 @@ a direct scan. Then place the work:
|
|
|
65
66
|
takes longer.
|
|
66
67
|
- **Query remotely, in place** when the data lives elsewhere: DuckDB reads http(s)/S3
|
|
67
68
|
Parquet and CSV with projection and predicate pushdown, so fetch the columns and rows the
|
|
68
|
-
question needs, never the whole file. When data sits
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
data
|
|
69
|
+
question needs, never the whole file. When data sits in a database, run the aggregation
|
|
70
|
+
there in its own SQL and pull back the result rows, never a table dump. When data sits on
|
|
71
|
+
another machine you can execute on, ship the query to the data and return the small
|
|
72
|
+
result. Rule: result much smaller than data — move the query; repeated local iteration
|
|
73
|
+
planned — move a pruned copy of the data once.
|
|
72
74
|
|
|
73
75
|
Sizing heuristics and recipes: `references/placement.md`.
|
|
74
76
|
|
|
@@ -8,13 +8,17 @@ ten times) or kills the machine (loading a dataset larger than RAM and swapping)
|
|
|
8
8
|
Three facts, one cell or script:
|
|
9
9
|
|
|
10
10
|
```python
|
|
11
|
-
import os, shutil, subprocess, sys
|
|
11
|
+
import os, re, shutil, subprocess, sys
|
|
12
12
|
size = os.path.getsize("data.csv") # bytes on disk
|
|
13
13
|
disk_free = shutil.disk_usage(".").free # spill headroom
|
|
14
|
-
if sys.platform == "darwin":
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
if sys.platform == "darwin": # free RAM = free + inactive + speculative pages
|
|
15
|
+
vm = subprocess.run(["vm_stat"], capture_output=True, text=True).stdout
|
|
16
|
+
page = int(re.search(r"page size of (\d+)", vm).group(1))
|
|
17
|
+
ram_free = page * sum(int(re.search(rf"{k}:\s+(\d+)", vm).group(1))
|
|
18
|
+
for k in ("Pages free", "Pages inactive", "Pages speculative"))
|
|
19
|
+
else: # Linux: MemAvailable
|
|
20
|
+
ram_free = next(int(line.split()[1]) * 1024 for line in open("/proc/meminfo")
|
|
21
|
+
if line.startswith("MemAvailable:"))
|
|
18
22
|
# row estimate without loading (DuckDB streams the scan):
|
|
19
23
|
# duckdb.sql("SELECT count(*) FROM 'data.csv'")
|
|
20
24
|
```
|
|
@@ -6,10 +6,10 @@ This skill's uv lane (kernel-less harnesses, isolated one-shots) runs through `u
|
|
|
6
6
|
|
|
7
7
|
| Platform | Command |
|
|
8
8
|
|---|---|
|
|
9
|
-
| macOS / Linux / WSL
|
|
10
|
-
| Windows (PowerShell) | `powershell -ExecutionPolicy Bypass -File scripts/setup-uv.ps1` |
|
|
9
|
+
| macOS / Linux / WSL | `bash scripts/setup-uv.sh` |
|
|
10
|
+
| Windows (PowerShell; also from Git Bash, where `setup-uv.sh` exits) | `powershell -ExecutionPolicy Bypass -File scripts/setup-uv.ps1` |
|
|
11
11
|
|
|
12
|
-
Both scripts: detect OS + architecture → install uv to the latest release when missing → upgrade it when present (`uv self update`) → make it resolvable for the
|
|
12
|
+
Both scripts: detect OS + architecture → install uv to the latest release when missing → upgrade it when present (`uv self update`) → make it resolvable for the script's own `uv --version` check (an already-open shell still needs the PATH line below) → verify with `uv --version`. They are idempotent — safe to re-run any time.
|
|
13
13
|
|
|
14
14
|
## Manual install per platform
|
|
15
15
|
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
# Visualization
|
|
2
2
|
|
|
3
|
-
A chart exists to answer a question at a glance.
|
|
4
|
-
|
|
3
|
+
A chart exists to answer a question at a glance. A chart shown inline beside a reply
|
|
4
|
+
(`show_html_page`, `html_preview`, `html_render`) is drawn in HTML, never as a matplotlib PNG:
|
|
5
|
+
an image ignores the reader's theme and width. When the `visualize` skill is available, it builds
|
|
6
|
+
that page. There this file's chart-type table, Figures and Quality bar apply, and the matplotlib
|
|
7
|
+
calls do not. Everywhere else (a kernel, a file, a document) render it with matplotlib (resident
|
|
8
|
+
in most Python kernels; `uv run --with matplotlib` otherwise). Either way, look at it before delivering —
|
|
5
9
|
a chart nobody inspected is not evidence.
|
|
6
10
|
|
|
7
11
|
## When to chart
|
|
@@ -22,6 +26,15 @@ question — decoration dilutes the answer.
|
|
|
22
26
|
| Composition of a whole? | stacked or 100% bar — pie only for four or fewer slices |
|
|
23
27
|
| Many series over time? | small multiples over one spaghetti chart |
|
|
24
28
|
|
|
29
|
+
## Figures — every chart
|
|
30
|
+
|
|
31
|
+
- **Days start at the reader's midnight.** Cut daily, weekly and monthly buckets in the
|
|
32
|
+
reader's time zone, not UTC, and name the zone in the axis label or caption. A bucket still
|
|
33
|
+
filling (today, this week) is marked partial on its own bar, or it reads as a drop.
|
|
34
|
+
- **Cross-check one figure.** Recompute a headline number from a second source (another
|
|
35
|
+
table, the system's own dashboard, a raw count) and say beside the chart whether it
|
|
36
|
+
matched, and by how much it differed if not.
|
|
37
|
+
|
|
25
38
|
## Quality bar — every chart
|
|
26
39
|
|
|
27
40
|
- Title states the finding ("Seoul overtook Busan in March"), not the dataset name.
|
|
@@ -51,8 +64,10 @@ matplotlib.rcParams["axes.unicode_minus"] = False # keeps the minus sign rende
|
|
|
51
64
|
|
|
52
65
|
## Output contract
|
|
53
66
|
|
|
54
|
-
1.
|
|
55
|
-
|
|
67
|
+
1. Inline page beside a reply: no PNG. Draw the computed figures in HTML and preview them in
|
|
68
|
+
both themes, following the `visualize` skill when it is available.
|
|
69
|
+
2. Otherwise save a PNG next to the work: `plt.savefig(path, dpi=150, bbox_inches="tight")`,
|
|
70
|
+
and also render it inline when the surface displays rich output (kernels usually do).
|
|
56
71
|
3. Report the file path together with the answer.
|
|
57
72
|
|
|
58
73
|
## Visual QA — mandatory
|
|
@@ -26,7 +26,7 @@ The rest of this file is a map. **The knowledge is in `references/`.** This file
|
|
|
26
26
|
|
|
27
27
|
## Runtime Setup — MANDATORY READING BEFORE ATTACHING
|
|
28
28
|
|
|
29
|
-
The methodology is language-agnostic. The commands to launch, attach, breakpoint, and inspect are not. **Open the matching reference
|
|
29
|
+
The methodology is language-agnostic. The commands to launch, attach, breakpoint, and inspect are not. **Open the matching reference the moment you know the runtime (Phase 0, step 2) and before you attach anything. Not after.**
|
|
30
30
|
|
|
31
31
|
| Your runtime is… | Open this before attaching anything | Non-negotiable because… |
|
|
32
32
|
|---|---|---|
|
|
@@ -39,7 +39,7 @@ The methodology is language-agnostic. The commands to launch, attach, breakpoint
|
|
|
39
39
|
|
|
40
40
|
**If you cannot honestly say you just opened the reference for your runtime, open it now.**
|
|
41
41
|
|
|
42
|
-
> 🚨 **Native binary vs bundled binary — check before committing**: `file ./target` calls them both Mach-O / ELF. The 30-second discriminator is `du -h ./target` (50 MB+ suspect bundled) plus `strings -n 12 ./target | rg -
|
|
42
|
+
> 🚨 **Native binary vs bundled binary — check before committing**: `file ./target` calls them both Mach-O / ELF. The 30-second discriminator is `du -h ./target` (50 MB+ suspect bundled) plus `strings -n 12 ./target | rg -i 'bun|node_modules|webpack|esbuild|deno|pkg/lib|electron|pyinstaller|nexe|NODE_SEA_FUSE|tauri'`. If hits → bundled-js-binary.md. If clean → native-binary.md.
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
@@ -56,7 +56,7 @@ These are not "optional extras". They are the correct tool in their domain, and
|
|
|
56
56
|
| **Frida** | Any running process you must instrument live without source or symbols — hook a function and print real argument values, trace calls, stub a return. Complements Ghidra: Ghidra reads the bytes, Frida watches them execute. **If Ghidra's static decompile has hit its limit, reach for Frida.** | 📖 **[references/tools/frida.md](references/tools/frida.md)** |
|
|
57
57
|
| **DAP client (`dap.mjs`)** | Any time you would drive a debugger through a PTY and screen-scrape its text. Debuggers already speak the machine-readable Debug Adapter Protocol (debugpy, `dlv dap`, lldb-dap, js-debug); this bundled script drives it with bounded, monitorable output. **Prefer it over scraping `gdb`/`pdb` whenever the debugger speaks DAP.** Design modeled on oh-my-pi's `debug` tool (github.com/can1357/oh-my-pi). | 📖 **[references/tools/dap.md](references/tools/dap.md)** |
|
|
58
58
|
|
|
59
|
-
**Failing to use these tools in their domain is a process failure, not a stylistic choice.** If the bug is in a browser and you did Phase 8 without
|
|
59
|
+
**Failing to use these tools in their domain is a process failure, not a stylistic choice.** If the bug is in a browser and you did Phase 8 without omowright, you are doing it wrong. If the bug is in a stripped binary and you read hex with `xxd`, you are doing it wrong. The references tell you how. Read them.
|
|
60
60
|
|
|
61
61
|
---
|
|
62
62
|
|
|
@@ -74,8 +74,8 @@ Each phase has exactly one reference. Read it as you enter the phase — not in
|
|
|
74
74
|
| 5 | **User decision escalation** — only when evidence exhausted and the call has policy implications | [references/methodology/05-escalate.md](references/methodology/05-escalate.md) |
|
|
75
75
|
| 6 | **Root cause confirmation** — confirmed only when toggling the suspected cause toggles the bug | [references/methodology/06-fix.md](references/methodology/06-fix.md) |
|
|
76
76
|
| 7 | **Fix locked by a failing proof** — reuse the owner test that already fails or add one regression that fails on the pre-fix code, minimal green, no scope expansion | [references/methodology/06-fix.md](references/methodology/06-fix.md) |
|
|
77
|
-
| 8 | **Manual QA** — actually use the system (tmux for CLI,
|
|
78
|
-
| 9 | **Cleanup** — walk the journal, revert every artifact, verify `git diff` shows only fix + test | [references/methodology/09-cleanup.md](references/methodology/09-cleanup.md) |
|
|
77
|
+
| 8 | **Manual QA** — actually use the system (tmux for CLI, omowright for browser, real curl for API, real repro for binary) | [references/methodology/08-qa.md](references/methodology/08-qa.md) |
|
|
78
|
+
| 9 | **Cleanup** — walk the journal, revert every artifact, verify `git diff` shows only fix + test (plus any Phase 7 oversized-file split) | [references/methodology/09-cleanup.md](references/methodology/09-cleanup.md) |
|
|
79
79
|
| 10 | **Final verification** — four evidence gates before declaring done | [references/methodology/09-cleanup.md](references/methodology/09-cleanup.md) |
|
|
80
80
|
|
|
81
81
|
**Phase references are short by design.** Reading one takes a minute. Skipping one costs an hour.
|
|
@@ -66,7 +66,7 @@ Branch depending on what's available.
|
|
|
66
66
|
|
|
67
67
|
When the `team_*` tools are present, create a **debug-squad** team and split investigation across members working on different evidence sources. This is the right default whenever you have ≥3 hypotheses and any of them would take >10 minutes to investigate single-threaded.
|
|
68
68
|
|
|
69
|
-
**Team spec** — write to
|
|
69
|
+
**Team spec** — write to `.omo/teams/debug-squad/config.json` under the project root (the project-scoped spec location the team loader reads):
|
|
70
70
|
|
|
71
71
|
```json
|
|
72
72
|
{
|
|
@@ -86,7 +86,7 @@ When the `team_*` tools are present, create a **debug-squad** team and split inv
|
|
|
86
86
|
{
|
|
87
87
|
"kind": "category",
|
|
88
88
|
"category": "deep-low",
|
|
89
|
-
"prompt": "You are the Reproduction Engineer. Your job: build the smallest reliable repro — a curl command, a vitest/pytest/go test, a tmux script,
|
|
89
|
+
"prompt": "You are the Reproduction Engineer. Your job: build the smallest reliable repro — a curl command, a vitest/pytest/go test, a tmux script, an omowright script for browser bugs, a pwntools script for binary targets. It must reproduce on first try and be copy-pasteable by the Lead. Document exact input, expected output, observed output. Save repro artifacts under /tmp/ and tell the Lead to journal them. If the bug is browser-based you MUST drive a real browser through omowright (references/tools/browser-qa.md) — do not simulate with curl."
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
"kind": "category",
|
|
@@ -100,6 +100,8 @@ Only cleanup directly related to the fix. Do not re-architect.
|
|
|
100
100
|
|
|
101
101
|
If the code around the fix is rough, note it in the journal as a follow-up for the user; do not expand scope here. Refactoring during a bugfix is how one-line fixes turn into hundred-line diffs nobody can review.
|
|
102
102
|
|
|
103
|
+
**The one carve-out, and it runs before step 2, not after green:** if the fix must add lines to a file that already exceeds the `programming` skill's 250 pure-LOC ceiling (its DEFECT row forbids new lines in that file), first extract the unit you are touching into its own file as a separate, behavior-preserving move (the red test still fails for the same reason, every other test still passes), journal it, then make the minimal fix in the extracted file. The `programming` skill's SIZE_OK and pure-data-table exceptions still apply. That split ships with the fix; any other rough code stays a follow-up.
|
|
104
|
+
|
|
103
105
|
### 4. Regression — full suite green
|
|
104
106
|
|
|
105
107
|
Run the full test suite for the affected package (not just the one new test). Existing tests must still pass.
|
|
@@ -108,13 +108,13 @@ Last gate before reporting done. All four gates must be true, and all four must
|
|
|
108
108
|
|
|
109
109
|
### The four gates
|
|
110
110
|
|
|
111
|
-
1. **Red→green toggle confirmed** — show the failing test output from before the fix and passing output after. Both outputs visible in the
|
|
111
|
+
1. **Red→green toggle confirmed** — show the failing test output from before the fix and passing output after. Both outputs visible in the final message (the journal was removed in Phase 9).
|
|
112
112
|
|
|
113
113
|
2. **Full test suite green** — show the suite's final pass line (e.g. `42 passed in 3.14s`). Not just the new test.
|
|
114
114
|
|
|
115
115
|
3. **Manual QA reproduced the fix** — show the command or scenario that originally failed and its now-correct output. Verbatim, not paraphrased.
|
|
116
116
|
|
|
117
|
-
4. **Working tree clean of debug artifacts** — show `git diff --stat` output containing only fix + test, plus `git status` clean of untracked debug files.
|
|
117
|
+
4. **Working tree clean of debug artifacts** — show `git diff --stat` output containing only fix + test (plus the Phase 7 oversized-file split, if one was required), plus `git status` clean of untracked debug files.
|
|
118
118
|
|
|
119
119
|
If any of the four lacks evidence, you have not finished — return to the appropriate phase.
|
|
120
120
|
|
|
@@ -59,7 +59,7 @@ HTTPS_PROXY=http://127.0.0.1:8888 SSL_CERT_FILE=~/.mitmproxy/mitmproxy-ca-cert.p
|
|
|
59
59
|
```bash
|
|
60
60
|
# DYLD_INSERT_LIBRARIES / LD_PRELOAD shim approach
|
|
61
61
|
# Wrap the network call to log payload, return a fake 200
|
|
62
|
-
# See
|
|
62
|
+
# See ../runtimes/native-binary.md (DYLD_INSERT_LIBRARIES interception; "Option C: Wrap / shim") for shim examples
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
**Strength**: Wire-level ground truth, but requires the target to honor your proxy / preload.
|
|
@@ -41,7 +41,7 @@ Step 3 is the unlock — once you have plaintext source on disk, the rest is nor
|
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
43
|
# Look for runtime-specific markers in plaintext strings
|
|
44
|
-
strings -n 12 ./target 2>/dev/null | rg -
|
|
44
|
+
strings -n 12 ./target 2>/dev/null | rg -i 'bun|node_modules|webpack|esbuild|deno|pkg/lib|electron|pyinstaller|nexe|NODE_SEA_FUSE|NODE_SEA_BLOB|tauri|ESZIP_V2|denort' | head -20
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
| Marker pattern | Bundler | Source format |
|
|
@@ -20,7 +20,7 @@ Quick check:
|
|
|
20
20
|
```bash
|
|
21
21
|
file ./target # Mach-O / ELF / PE - inconclusive
|
|
22
22
|
du -h ./target # 50 MB+ for a "simple CLI" → suspect bundled
|
|
23
|
-
strings -n 12 ./target | rg -
|
|
23
|
+
strings -n 12 ./target | rg -i 'bun|node_modules|webpack|esbuild|deno|pkg/lib|electron|pyinstaller|nexe|NODE_SEA_FUSE|tauri' | head -5
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
**If any hits** → close this file, open [bundled-js-binary.md](bundled-js-binary.md) instead. Following the Ghidra/pwndbg path on a bundled-app binary wastes hours decompiling the runtime VM while the app-level bundle is recoverable with the right per-bundler tool (plaintext for Bun/pkg/nexe/Electron-asar; eszip / V8-cache / `.pyc` for Deno / Node SEA / PyInstaller).
|
|
@@ -25,8 +25,6 @@ const profile = mkdtempSync(join(tmpdir(), "debug-repro-"))
|
|
|
25
25
|
const browser = await omowright.connectPipe({ browserPath, browserArgs: ["--headless", `--user-data-dir=${profile}`], storageRoot: profile })
|
|
26
26
|
const page = await browser.newTab("about:blank")
|
|
27
27
|
const trace = omowright.createTrace(page, { dir: traceDir }) // trace.jsonl + trace.har + before/after screenshots
|
|
28
|
-
const consoleErrors = []
|
|
29
|
-
page.on("console", (entry) => { if (entry.type === "error") consoleErrors.push(entry.text) })
|
|
30
28
|
try {
|
|
31
29
|
await trace.step("open", () => page.goto(url, { waitUntil: "load" }))
|
|
32
30
|
await trace.step("submit", async () => {
|
|
@@ -36,6 +34,7 @@ try {
|
|
|
36
34
|
await page.waitForURL(/\/done/, { timeout: 10_000 })
|
|
37
35
|
})
|
|
38
36
|
await Bun.write(pngPath, await page.screenshot())
|
|
37
|
+
const consoleErrors = (await page.console.logs({ levels: ["error"] })).map((entry) => entry.message)
|
|
39
38
|
} finally {
|
|
40
39
|
await trace.stop()
|
|
41
40
|
await browser.close()
|
|
@@ -5,7 +5,7 @@ description: "Builds, styles, and polishes anything drawn with HTML, CSS, or SVG
|
|
|
5
5
|
|
|
6
6
|
# Frontend
|
|
7
7
|
|
|
8
|
-
This file is a router over `references/`; the rules live there. The flow is ground -> brief -> build -> subtract -> verify. The bar is restraint with a visible hierarchy: one primary action, the important thing first, nothing on the screen without a job. A quiet, correct screen that holds its hierarchy at 390 and 1440 in both themes is a finish. Atmosphere, motion, and award-grade surface work are opt-in: build them when the brief asks (a named brand, "premium", "make it stunning", a marketing page), never by default for an internal tool, dashboard, admin screen, report, or figure.
|
|
8
|
+
This file is a router over `references/`; the rules live there. The flow is ground -> brief -> build -> subtract -> verify. The bar is restraint with a visible hierarchy: one primary action, the important thing first, nothing on the screen without a job. A quiet, correct screen that holds its hierarchy at 390 and 1440 in both themes is a finish. Atmosphere, motion, and award-grade surface work are opt-in: build them when the brief asks (a named brand, "premium", "make it stunning", a marketing page), never by default for an internal tool, dashboard, admin screen, report, or figure. An inline page shown beside a reply (a chart, table, or diagram for `show_html_page`, `html_preview`, or `html_render`) follows the `visualize` skill when it is available; either way it is exempt from the `DESIGN.md` gate, the Lighthouse audit, and the research lanes, and keeps the build rules, the Draft guard, and the lint.
|
|
9
9
|
|
|
10
10
|
## Route: name the references, read exactly those
|
|
11
11
|
|
|
@@ -119,7 +119,7 @@ Layer A (pick AT MOST ONE style skill; they encode opposing philosophies):
|
|
|
119
119
|
| `layout-skill.md` / `interaction-skill.md` / `ambience-skill.md` | Stack on any style skill; mechanics only, no visual direction. |
|
|
120
120
|
| `imagegen-frontend-web.md` / `imagegen-frontend-mobile.md` / `imagegen-brandkit.md` | Image-only output; never code. |
|
|
121
121
|
|
|
122
|
-
Layer B: when the user names a brand or site ("Linear-style", "like Stripe's landing", "Aside-style browser agent"), load `references/design/<brand>.md` as the token source of truth: `aside` `apple` `stripe` `linear.app` `notion` `vercel` `claude` `figma` `airbnb` `nike` `tesla` `spotify` `raycast` `revolut` and ~56 more in `_INDEX.md`. Extract the tokens and apply them to the project's own content; never copy logos or trademarked imagery. A missing brand falls back to a Layer A mood match or the
|
|
122
|
+
Layer B: when the user names a brand or site ("Linear-style", "like Stripe's landing", "Aside-style browser agent"), load `references/design/<brand>.md` as the token source of truth: `aside` `apple` `stripe` `linear.app` `notion` `vercel` `claude` `figma` `airbnb` `nike` `tesla` `spotify` `raycast` `revolut` and ~56 more in `_INDEX.md`. Extract the tokens and apply them to the project's own content; never copy logos or trademarked imagery. A missing brand falls back to a Layer A mood match or to the nexu-io/open-design library (https://github.com/nexu-io/open-design).
|
|
123
123
|
|
|
124
124
|
`perfection/`: `README.md` (the seven tenets: real-browser audits only, 100 in every category, fix at the architecture, never weaken UX for points, design-system compliance, the audit report format) and `react-perf-tooling.md` (Playwright + `playwright-lighthouse` + `react-scan/lite` injection, per-route render budgets). Audit CLI, production build only, mobile and desktop presets, 3-5 runs, take the median:
|
|
125
125
|
|
|
@@ -131,7 +131,7 @@ uv run $SKILL_DIR/scripts/perfection/lighthouse-audit.py https://localhost:3000
|
|
|
131
131
|
|
|
132
132
|
```bash
|
|
133
133
|
python3 -B $SKILL_DIR/references/ui-ux-db/scripts/search.py "<query>" --design-system -p "Project" # design-system generation
|
|
134
|
-
python3 -B $SKILL_DIR/references/ui-ux-db/scripts/search.py "<query>" --domain <domain> # product style typography color landing chart ux react web
|
|
134
|
+
python3 -B $SKILL_DIR/references/ui-ux-db/scripts/search.py "<query>" --domain <domain> # product style typography color landing chart ux react web icons google-fonts
|
|
135
135
|
python3 -B $SKILL_DIR/references/ui-ux-db/scripts/search.py "<query>" --stack <stack> # html-tailwind react nextjs vue svelte astro swiftui react-native flutter shadcn jetpack-compose
|
|
136
136
|
```
|
|
137
137
|
|
|
@@ -141,7 +141,7 @@ python3 -B $SKILL_DIR/references/ui-ux-db/scripts/search.py "<query>" --stack <s
|
|
|
141
141
|
|
|
142
142
|
| Situation | Load |
|
|
143
143
|
|---|---|
|
|
144
|
-
| Brand/style not among the 70 in `references/design/`, or the user says "Open Design" |
|
|
144
|
+
| Brand/style not among the 70 in `references/design/`, or the user says "Open Design" | The nexu-io/open-design library (https://github.com/nexu-io/open-design; 137+ design skills, 150+ design systems) |
|
|
145
145
|
| Driving a browser for captures | `visual-qa` skill: omowright from js eval (owned engine for renders, attached engine for signed-in pages) |
|
|
146
146
|
| Pure TypeScript/logic work with zero visual surface | `programming` skill alone; this skill adds nothing there |
|
|
147
147
|
|
|
@@ -12,7 +12,7 @@ Restraint with a visible hierarchy. The brief's primary action is the one promin
|
|
|
12
12
|
- **Layer A, taste skills (12 files, named `-skill.md` or `imagegen-`):** how to execute. Discipline, spacing, motion physics, anti-slop guardrails, output completeness.
|
|
13
13
|
- **Layer B, design systems (70 brand files):** what it looks like. Concrete colour, type, and component tokens for one brand.
|
|
14
14
|
|
|
15
|
-
`_INDEX.md` lists all 83 with mood-to-brand mappings and stacking rules; read it when routing is not obvious. Most non-trivial tasks load one from each layer. For a brand or style outside the curated set, or when the user says "Open Design",
|
|
15
|
+
`_INDEX.md` lists all 83 with mood-to-brand mappings and stacking rules; read it when routing is not obvious. Most non-trivial tasks load one from each layer. For a brand or style outside the curated set, or when the user says "Open Design", use the nexu-io/open-design library (https://github.com/nexu-io/open-design), 150+ design systems, as the expanded library; this file keeps routing discipline, the `DESIGN.md` gate, and execution quality.
|
|
16
16
|
|
|
17
17
|
## Phase 0: Design System Gate (before routing, before any UI code)
|
|
18
18
|
|
|
@@ -23,7 +23,7 @@ Look for `DESIGN.md`, `design-system.md`, or `design-tokens.md` at the project r
|
|
|
23
23
|
**It does not exist: read `design-system-architecture.md` for the structure, then take the branch:**
|
|
24
24
|
|
|
25
25
|
1. **Greenfield, no concrete reference.** Research is a build step with named deliverables, not exploration to budget: run the lanes in parallel and open `DESIGN.md` with `## 0. Research Log`, one line per lane. A lane with no line did not run; skip a lane only when its tool or network is unavailable, and name the skip there.
|
|
26
|
-
- *Embedded references:* shortlist 2-3 plausible Layer B candidates from `_INDEX.md`, then read ONE Layer A style skill and ONE Layer B reference in full, every line (they are 200-500 lines; a sliced read produces the flattened token set this gate exists to prevent). Log the shortlist, the pick, and why.
|
|
26
|
+
- *Embedded references:* shortlist 2-3 plausible Layer B candidates from `_INDEX.md`, then read ONE Layer A style skill and ONE Layer B reference in full, every line (they are 200-500 lines; a sliced read produces the flattened token set this gate exists to prevent). Log the shortlist, the pick, and why. The open-design library only when the curated set has no fit; `ui-ux-db` lookups for palette, type, and domain questions that come up here.
|
|
27
27
|
- *Lazyweb real-product screens:* read `lazyweb.md` FIRST and run its recipe verbatim; it mints its own anonymous token, so never improvise curl calls against the host. Log the queries, how many screens you actually viewed, and the layout grammar taken, never pixel copies. When the harness has the user's own Mobbin MCP connected, run its `search_screens`, `search_flows`, or `search_sections` in this lane too; never reach Mobbin any other way (`component-catalogs.md` section 2). For every reference keep the product name and URL, write what you saw apart from what you recommend, and treat a recurring pattern as a convention, not proof. If the findings lean on one product, widen the set before you build.
|
|
28
28
|
- *StyleGallery:* read `stylegallery.md`, fetch the pattern whose primary spatial problem matches the screen, and write the `Layout:` line.
|
|
29
29
|
- *Imagen concept drafts:* generate 2-3 drafts, each seeded with the loaded Layer A + Layer B tokens (palette, type, material); pick the strongest and treat it as the reference-fidelity contract. Log the paths and the pick.
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
| Tailwind-only, no React, server-rendered HTML | daisyUI class components | - | Motion is CSS transitions on `DESIGN.md` section 6 tokens. |
|
|
16
16
|
| Charts and data viz | `ui-ux-db` `--domain chart` for the chart type | bklit for animated chart source; MUI X Charts on Material projects | Section 4. |
|
|
17
17
|
| Landing sections: header, pricing, FAQ, logo cloud, stats, testimonials, footer | smoothui blocks, cult-ui blocks | the section galleries in section 2 (navbar, pricing, CTA, hero, footer) | Take structure only; copy and imagery stay the project's. |
|
|
18
|
-
| A brand outside the 70 Layer B files |
|
|
18
|
+
| A brand outside the 70 Layer B files | The nexu-io/open-design library | designmd.ai: community `DESIGN.md` files, MCP; read each file's licence first (its uploader picks MIT, CC0, CC-BY, CC-BY-SA, or a custom one) | Never refero styles (section 2). |
|
|
19
19
|
|
|
20
20
|
## 2. Catalogs (measured 2026-10-06; microkit, motion-primitives, uiverse, and 21st.dev on 2026-10-25)
|
|
21
21
|
|
package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md
CHANGED
|
@@ -60,7 +60,7 @@ rather than borders, creating layers you feel more than see."
|
|
|
60
60
|
| Status/info | --status-info | #2563EB | #3B82F6 | Informational |
|
|
61
61
|
|
|
62
62
|
### Rules
|
|
63
|
-
- Accent marks the one
|
|
63
|
+
- Accent marks the screen's one primary action, on the control's background rather than its glyph or label; a second likely action takes a quieter style. Peer choices differ by style, never by size. Nothing decorative carries accent.
|
|
64
64
|
- Never introduce a color not in this table. Extend the table first.
|
|
65
65
|
|
|
66
66
|
## 3. Typography
|
|
@@ -229,7 +229,7 @@ Both paths start with `grounding.md`: the guideline source read in full, the ide
|
|
|
229
229
|
|
|
230
230
|
### For New Projects
|
|
231
231
|
|
|
232
|
-
1. **Select references before taste** — no visual reference means `_INDEX.md` shortlist of 2-3 Layer B candidates, then exactly one Layer A style skill and one Layer B brand/design-system reference. Use
|
|
232
|
+
1. **Select references before taste** — no visual reference means `_INDEX.md` shortlist of 2-3 Layer B candidates, then exactly one Layer A style skill and one Layer B brand/design-system reference. Use the open-design library only when the curated set has no fit.
|
|
233
233
|
2. **Assemble from references** — extract tokens, layout grammar, component anatomy, states, motion, and taste decisions, then recombine them into project-specific primitives. Customize for the user's product; never copy logos, trademarked assets, or brand-specific copy.
|
|
234
234
|
3. **Define the system** — colour roles first (both themes), then atmosphere, typography, spacing, and one depth strategy, grounded in the selected references and product semantics. Sanity-check the palette and type pairing with one `ui-ux-db` domain search (CLI in `references/ui-ux-db/README.md`).
|
|
235
235
|
4. **Document initial primitives** — only components you are about to build, including variants and states, starting from shadcn/ui anatomy (or the project's own kit) restyled with the tokens.
|
|
@@ -73,4 +73,4 @@ pdftoppm -png -r 150 report.pdf out/page # one PNG per page
|
|
|
73
73
|
|
|
74
74
|
Read every page image for: blank or near-empty pages, a block stranded alone after a keep-together push, a table or figure split mid-exhibit, a heading orphaned at a page foot, clipped or overflowing text, and a running header or footer that drifted or vanished.
|
|
75
75
|
|
|
76
|
-
Extracting the text proves the words are present. It cannot see any defect in this list - layout is exactly the information that extraction discards. Fix, re-render, and look again until the pages are clean
|
|
76
|
+
Extracting the text proves the words are present. It cannot see any defect in this list - layout is exactly the information that extraction discards. Fix, re-render, and look again until the pages are clean. The `ulw-research` delivery gate and the `mass-ulw` verification wave hold the same page-by-page inspection standard; `ulw-research` bounds its repair loop (its `repair decide` stop rules) and ships any residual defect listed in its manifest.
|
package/packages/omo-codex/plugin/skills/frontend/references/design/react-dev-tooling-skill.md
CHANGED
|
@@ -222,7 +222,7 @@ If any of those leak into production, the dev gate is broken. Fix the gate befor
|
|
|
222
222
|
## Cross-skill references
|
|
223
223
|
|
|
224
224
|
- For **render performance / Lighthouse 100** work, see `../perfection/react-perf-tooling.md` — Playwright + `react-scan/lite` integration used during automated audits.
|
|
225
|
-
- For **
|
|
225
|
+
- For **browser runtime inspection during an in-flight React bug** (rendered state, console, network), load the `debugging` skill and follow its `references/tools/browser-qa.md`; React-specific inspection uses the React dev tooling this file sets up.
|
|
226
226
|
- The Phase 0 Design System Gate (in `README.md`) and this React Dev Tooling Gate are both pre-implementation gates. Run Phase 0 first (design system must exist), then this gate (dev tooling must be installed).
|
|
227
227
|
|
|
228
228
|
## Mantra
|
package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Lane A: Direction & Discovery
|
|
2
2
|
|
|
3
|
-
Lane A feeds `ulw-plan`. It does not replace
|
|
3
|
+
Lane A feeds `ulw-plan`. It does not replace the `ulw-plan` planner, write a parallel plan, or start implementation. Its job is to translate designpowers discovery, research, persona, taste, debate, and state capabilities into prompt context that lets `ulw-plan` produce a decision-complete work plan with design-specific acceptance criteria.
|
|
4
4
|
|
|
5
5
|
## Phase Owner
|
|
6
6
|
|
|
7
7
|
| Capability | Source boundary | owner | Mapping |
|
|
8
8
|
|---|---|---|---|
|
|
9
|
-
| Discover the human problem, constraints, audience, success criteria, and early taste signals | Authored concept preserved from excluded raw `design-discovery` | `ulw-plan` | Inject a compact design brief request before
|
|
9
|
+
| Discover the human problem, constraints, audience, success criteria, and early taste signals | Authored concept preserved from excluded raw `design-discovery` | `ulw-plan` | Inject a compact design brief request before the planner drafts tasks. The planner still decides the plan structure and asks only unresolved owner decisions. |
|
|
10
10
|
| Identify research gaps and inclusion-aware research methods | `research-planning` | `ulw-plan` | Convert research questions into plan discovery tasks or explicit assumptions with evidence requirements. |
|
|
11
11
|
| Define principles, experience map, positioning, and success metrics | Authored concept preserved from excluded raw `design-strategy` | `ulw-plan` | Add strategy constraints and design principles to the plan's acceptance criteria. |
|
|
12
12
|
| Represent the full ability spectrum | `inclusive-personas` | `ulw-plan` | Require personas and stress cases in plan inputs, including permanent, temporary, and situational contexts. |
|
|
13
13
|
| Calibrate current-project taste and quality bar | Authored concept preserved from excluded raw `design-taste` | `ulw-plan` | Add live taste constraints for this project only; do not import cross-project memory as a design rule. |
|
|
14
|
-
| Surface competing directions and trade-offs | `design-debate` | `ulw-plan` | When direction is ambiguous, ask
|
|
14
|
+
| Surface competing directions and trade-offs | `design-debate` | `ulw-plan` | When direction is ambiguous, ask the planner to present 2-3 options with accessibility and usability trade-offs before choosing defaults. |
|
|
15
15
|
| Curate references and inspiration without copying | `inspiration-scouting` | `ulw-plan` | Add evidence-backed inspiration notes as optional plan context, with "what to take" and "what to leave." |
|
|
16
16
|
| Maintain shared design state | Authored concept preserved from excluded raw `design-state` | `ulw-plan` | Read and update `.omo/frontend-design/state.md` as the OpenAgent-native state ledger. |
|
|
17
17
|
|
|
@@ -33,7 +33,7 @@ Before planning, extract or infer:
|
|
|
33
33
|
- competing directions and trade-offs when direction is not settled
|
|
34
34
|
- existing `.omo/frontend-design/state.md` decisions, debt, and open questions
|
|
35
35
|
|
|
36
|
-
Add design-specific acceptance criteria to the
|
|
36
|
+
Add design-specific acceptance criteria to the `ulw-plan` plan:
|
|
37
37
|
- each UI task names the persona or journey it serves
|
|
38
38
|
- each task has accessibility and cognitive-accessibility checks where relevant
|
|
39
39
|
- each visual decision traces to a design principle, taste signal, or design-system token
|
|
@@ -52,7 +52,7 @@ Lane A passes only when the plan has inspectable design context, not vague inten
|
|
|
52
52
|
## Guardrails
|
|
53
53
|
|
|
54
54
|
- `ulw-plan` owns the final plan. Lane A may enrich prompts, but it must not create a second planning lane or standalone design plan.
|
|
55
|
-
- `writing-design-plans` content is used only as task-quality guidance;
|
|
55
|
+
- `writing-design-plans` content is used only as task-quality guidance; the `ulw-plan` plan remains the source of executable TODOs.
|
|
56
56
|
- Cross-project memory is descriptive only and must not steer this project's direction unless the user states the preference now.
|
|
57
57
|
- Direction debates pause for user decision when the trade-off is product-shaping, accessibility-critical, or hard to reverse.
|
|
58
58
|
- No new scheduler, background automation, or project root design-state convention is introduced; state stays at `.omo/frontend-design/state.md`.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
## Planning Through `/ulw-plan`
|
|
16
16
|
|
|
17
|
-
When planning is needed, `designpowers` supplies design-specific context and lets `/ulw-plan` own the plan artifact. Do not write a separate design plan. The
|
|
17
|
+
When planning is needed, `designpowers` supplies design-specific context and lets `/ulw-plan` own the plan artifact. Do not write a separate design plan. The `ulw-plan` plan should receive:
|
|
18
18
|
|
|
19
19
|
- product or page goal;
|
|
20
20
|
- primary tasks and user journeys;
|
|
@@ -35,7 +35,7 @@ When a plan is approved or selected, `/ulw-execute` remains the orchestrator. `d
|
|
|
35
35
|
- required `/visual-qa` loading for rendered visual proof;
|
|
36
36
|
- the design debt rule: unresolved accessibility debt cannot disappear into a summary.
|
|
37
37
|
|
|
38
|
-
Direct implementation outside `/ulw-execute` is not part of this routing contract when a
|
|
38
|
+
Direct implementation outside `/ulw-execute` is not part of this routing contract when a `ulw-plan` plan is active.
|
|
39
39
|
|
|
40
40
|
## UI Build Through Frontend `design` And `perfection`
|
|
41
41
|
|