diff --git a/.codex/AGENTS.md b/.codex/AGENTS.md index d2ac168..9d50044 100644 --- a/.codex/AGENTS.md +++ b/.codex/AGENTS.md @@ -1,12 +1,199 @@ -- Delete unused or obsolete files when your changes make them irrelevant (refactors, feature removals, etc.), and revert files only when the change is yours or explicitly requested. If a git operation leaves you unsure about other agents' in-flight work, stop and coordinate instead of deleting. -- **Before attempting to delete a file to resolve a local type/lint failure, stop and ask the user.** Other agents are often editing adjacent files; deleting their work to silence an error is never acceptable without explicit approval. -- NEVER edit `.env` or any environment variable files—only the user may change them. -- Coordinate with other agents before removing their in-progress edits—don't revert or delete work you didn't author unless everyone agrees. -- Moving/renaming and restoring files is allowed. -- ABSOLUTELY NEVER run destructive git operations (e.g., `git reset --hard`, `rm`, `git checkout`/`git restore` to an older commit) unless the user gives an explicit, written instruction in this conversation. Treat these commands as catastrophic; if you are even slightly unsure, stop and ask before touching them. _(When working within Cursor or Codex Web, these git limitations do not apply; use the tooling's capabilities as needed.)_ -- Never use `git restore` (or similar commands) to revert files you didn't author—coordinate with other agents instead so their in-progress work stays intact. -- Always double-check git status before any commit -- Keep commits atomic: commit only the files you touched and list each path explicitly. For tracked files run `git commit -m "" -- path/to/file1 path/to/file2`. For brand-new files, use the one-liner `git restore --staged :/ && git add "path/to/file1" "path/to/file2" && git commit -m "" -- path/to/file1 path/to/file2`. -- Quote any git paths containing brackets or parentheses (e.g., `src/app/[candidate]/**`) when staging or committing so the shell does not treat them as globs or subshells. -- When running `git rebase`, avoid opening editors—export `GIT_EDITOR=:` and `GIT_SEQUENCE_EDITOR=:` (or pass `--no-edit`) so the default messages are used automatically. -- Never amend commits unless you have explicit written approval in the task thread. +# AGENTS.MD + +Work style: telegraph; noun-phrases ok; drop grammar; min tokens. + +## Agent Protocol + +- Contact: Kyle Yasuda (@sudacode, ). +- Workspace: `~/Projects`. +- “MacBook Air” / “Mac Mini” => SSH there; find hosts/IPs via `tailscale status`. +- PRs: use `gh pr view/diff` (no URLs). +- “Make a note” => edit AGENTS.md (shortcut; not a blocker). Ignore `CLAUDE.md`. +- No `./runner`. Guardrails: use `trash` for deletes. +- Need upstream file: stage in `/tmp/`, then cherry-pick; never overwrite tracked. +- Bugs: add regression test when it fits. +- Keep files <~500 LOC; split/refactor as needed. +- Commits: Conventional Commits (`feat|fix|refactor|build|ci|chore|docs|style|perf|test`). +- Subagents: read `docs/subagent.md`. +- Editor: `code `. +- CI: `gh run list/view` (rerun/fix til green). +- Prefer end-to-end verify; if blocked, say what’s missing. +- New deps: quick health check (recent releases/commits, adoption). +- Slash cmds: `~/.codex/prompts/`. +- Web: search early; quote exact errors; prefer 2024–2025 sources; fallback Firecrawl (`pnpm mcp:*`) / `mcporter`. +- Oracle: run `npx -y @steipete/oracle --help` once/session before first use. +- Style: telegraph. Drop filler/grammar. Min tokens (global AGENTS + replies). + +## Screenshots (“use a screenshot”) + +- Pick newest PNG in `~/Desktop` or `~/Downloads`. +- Verify it’s the right UI (ignore filename). +- Size: `sips -g pixelWidth -g pixelHeight ` (prefer 2×). +- Optimize: `imageoptim ` (install: `brew install imageoptim-cli`). +- Replace asset; keep dimensions; commit; run gate; verify CI. + +## Important Locations + +- Blog repo: `~/Projects/steipete.me` +- Notes/Runbooks: `~/Projects/manager/docs/` (e.g. `mac-studio.md`, `mac-vm.md`) +- OpenAI/Codex limits tracking: `~/Documents/steipete/codex limits.md` +- Obsidian vault: `$HOME/Library/Mobile Documents/iCloud~md~obsidian/Documents/steipete-notes` +- Sparkle keys: `~/Library/CloudStorage/Dropbox/Backup/Sparkle` + +## Docs + +- Start: run docs list (`docs:list` script, or `bin/docs-list` here if present; ignore if not installed); open docs before coding. +- Follow links until domain makes sense; honor `Read when` hints. +- Keep notes short; update docs when behavior/API changes (no ship w/o docs). +- Add `read_when` hints on cross-cutting docs. +- Model note (2025-11-23): no `gpt-5.1-pro` / `grok-4.1` on Peter’s keys yet. +- Model preference: latest only. OK: Anthropic Opus 4.5 / Sonnet 4.5 (Sonnet 3.5 = old; avoid), OpenAI GPT-5.2, xAI Grok-4.1 Fast, Google Gemini 3 Flash. + +## PR Feedback + +- Active PR: `gh pr view --json number,title,url --jq '"PR #\\(.number): \\(.title)\\n\\(.url)"'`. +- PR comments: `gh pr view …` + `gh api …/comments --paginate`. +- Replies: cite fix + file/line; resolve threads only after fix lands. +- When merging a PR: thank the contributor in `CHANGELOG.md`. + +## Flow & Runtime + +- Use repo’s package manager/runtime; no swaps w/o approval. +- Use Codex background for long jobs; tmux only for interactive/persistent (debugger/server). + +## Build / Test + +- Before handoff: run full gate (lint/typecheck/tests/docs). +- CI red: `gh run list/view`, rerun, fix, push, repeat til green. +- Keep it observable (logs, panes, tails, MCP/browser tools). +- Release: read `docs/RELEASING.md` (or find best checklist if missing). +- Reminder: check `~/.profile` for missing env keys (e.g. `SPARKLE_PRIVATE_KEY_FILE`); Sparkle keys live in `~/Library/CloudStorage/Dropbox/Backup/Sparkle`. + +## Git + +- Safe by default: `git status/diff/log`. Push only when user asks. +- `git checkout` ok for PR review / explicit request. +- Branch changes require user consent. +- Destructive ops forbidden unless explicit (`reset --hard`, `clean`, `restore`, `rm`, …). +- Remotes under `~/Projects`: prefer HTTPS; flip SSH->HTTPS before pull/push. +- Commit helper on PATH: `committer` (bash). Prefer it; if repo has `./scripts/committer`, use that. +- Don’t delete/rename unexpected stuff; stop + ask. +- No repo-wide S/R scripts; keep edits small/reviewable. +- Avoid manual `git stash`; if Git auto-stashes during pull/rebase, that’s fine (hint, not hard guardrail). +- If user types a command (“pull and push”), that’s consent for that command. +- No amend unless asked. +- Big review: `git --no-pager diff --color=never`. +- Multi-agent: check `git status/diff` before edits; ship small commits. + +## Language/Stack Notes + +- Swift: use workspace helper/daemon; validate `swift build` + tests; keep concurrency attrs right. +- TypeScript: use repo PM; run `docs:list`; keep files small; follow existing patterns. + +## macOS Permissions / Signing (TCC) + +- Never re-sign / ad-hoc sign / change bundle ID as “debug” without explicit ok (can mess TCC). + +## Critical Thinking + +- Fix root cause (not band-aid). +- Unsure: read more code; if still stuck, ask w/ short options. +- Conflicts: call out; pick safer path. +- Unrecognized changes: assume other agent; keep going; focus your changes. If it causes issues, stop + ask user. +- Leave breadcrumb notes in thread. + +## Tools + +Read `~/Projects/agent-scripts/tools.md` for the full tool catalog if it exists. + +### bird + +- X CLI: `~/Projects/bird/bird`. Cmds: `tweet`, `reply`, `read`, `thread`, `search`, `mentions`, `whoami`. +- Uses Firefox cookies by default (`--firefox-profile` to switch). + +### sonoscli + +- Sonos CLI: `~/Projects/sonoscli/bin/sonos`. Cmds: `discover`, `status`, `play/pause/stop`, `volume set`, `group`. +- SSDP can fail: use `--ip `. +- Spotify SMAPI: `sonos smapi search --service "Spotify" --category tracks "query"`. + +### peekaboo + +- Screen tools: `~/Projects/Peekaboo`. Cmds: `capture`, `see`, `click`, `list`, `tools`, `permissions status`. +- Needs Screen Recording + Accessibility. Docs: `~/Projects/Peekaboo/docs/commands/`. + +### sweetistics + +- X analytics app: `~/Projects/sweetistics`. + +### committer + +- Commit helper (PATH). Stages only listed paths; required here. Repo may also ship `./scripts/committer`. + +### trash + +- Move files to Trash: `trash …` (system command). + +### bin/docs-list / scripts/docs-list.ts + +- Optional. Lists `docs/` + enforces front-matter. Ignore if `bin/docs-list` not installed. Rebuild: `bun build scripts/docs-list.ts --compile --outfile bin/docs-list`. + +### bin/browser-tools / scripts/browser-tools.ts + +- Chrome DevTools helper. Cmds: `start`, `nav`, `eval`, `screenshot`, `pick`, `cookies`, `inspect`, `kill`. +- Rebuild: `bun build scripts/browser-tools.ts --compile --target bun --outfile bin/browser-tools`. + +### xcp + +- Xcode project/workspace helper for managing targets, groups, files, build settings, and assets; run `xcp --help`. + +### xcodegen + +- Generates Xcode projects from YAML specs; run `xcodegen --help`. + +### lldb + +- Use `lldb` inside tmux to debug native apps; attach to the running app to inspect state. + +### axe + +- Simulator automation CLI for describing UI (`axe describe-ui --udid …`), tapping (`axe tap --udid … -x … -y …`), typing, and hardware buttons. Use `axe list-simulators` to enumerate devices. + +### oracle + +- Bundle prompt+files for 2nd model. Use when stuck/buggy/review. +- Run `npx -y @steipete/oracle --help` once/session (before first use). + +### mcporter / iterm / firecrawl / XcodeBuildMCP + +- MCP launcher: `npx mcporter ` (see `npx mcporter --help`). Common: `iterm`, `firecrawl`, `XcodeBuildMCP`. + +### gh + +- GitHub CLI for PRs/CI/releases. Given issue/PR URL (or `/pull/5`): use `gh`, not web search. +- Examples: `gh issue view --comments -R owner/repo`, `gh pr view --comments --files -R owner/repo`. + +### Slash Commands + +- Global: `~/.codex/prompts/`. Repo-local: `docs/slash-commands/`. +- Common: `/handoff`, `/pickup`. + +### tmux + +- Use only when you need persistence/interaction (debugger/server). +- Quick refs: `tmux new -d -s codex-shell`, `tmux attach -t codex-shell`, `tmux list-sessions`, `tmux kill-session -t codex-shell`. + + +Avoid “AI slop” UI. Be opinionated + distinctive. + +Do: + +- Typography: pick a real font; avoid Inter/Roboto/Arial/system defaults. +- Theme: commit to a palette; use CSS vars; bold accents > timid gradients. +- Motion: 1–2 high-impact moments (staggered reveal beats random micro-anim). +- Background: add depth (gradients/patterns), not flat default. + +Avoid: purple-on-white clichés, generic component grids, predictable layouts. + + +Jiten Reader diff --git a/.codex/config.toml b/.codex/config.toml deleted file mode 100644 index 5a0c1f3..0000000 --- a/.codex/config.toml +++ /dev/null @@ -1,49 +0,0 @@ -model = "gpt-5.3-codex-spark" -model_reasoning_effort = "medium" -personality = "pragmatic" -tool_output_token_limit = 25000 -# Leave room for native compaction near the 272–273k context window. -# Formula: 273000 - (tool_output_token_limit + 15000) -# With tool_output_token_limit=25000 ⇒ 273000 - (25000 + 15000) = 233000 -model_auto_compact_token_limit = 233000 -[features] -ghost_commit = false -unified_exec = true -apply_patch_freeform = true -web_search_request = true -skills = true -shell_snapshot = true - -[projects."/home/kyasuda/gitlab/python_package_registry"] -trust_level = "trusted" - -[projects."/home/kyasuda/gitlab/treasury-me"] -trust_level = "trusted" - -[projects."/home/kyasuda/projects/tmp"] -trust_level = "trusted" - -[projects."/home/kyasuda/github/SubMiner"] -trust_level = "trusted" - -[projects."/home/kyasuda/.zsh"] -trust_level = "untrusted" - -[projects."/home/kyasuda/.config/mpv"] -trust_level = "untrusted" - -[projects."/home/kyasuda/packages/whisperx"] -trust_level = "trusted" - -[projects."/home/kyasuda/tmp"] -trust_level = "untrusted" - -[projects."/home/kyasuda/github/Manatan"] -trust_level = "trusted" - -[projects."/home/kyasuda/gitlab/accts-loader"] -trust_level = "trusted" - -[mcp_servers.backlog] -command = "backlog" -args = ["mcp", "start"] diff --git a/.codex/config.toml b/.codex/config.toml new file mode 120000 index 0000000..271d6a0 --- /dev/null +++ b/.codex/config.toml @@ -0,0 +1 @@ +config.toml##os.Linux \ No newline at end of file diff --git a/.codex/config.toml##os.Linux b/.codex/config.toml##os.Linux index 61ad6ad..501f98b 100644 --- a/.codex/config.toml##os.Linux +++ b/.codex/config.toml##os.Linux @@ -10,6 +10,9 @@ model_auto_compact_token_limit = 233000 ghost_commit = false unified_exec = true apply_patch_freeform = true -web_search_request = true +web_request = true skills = true shell_snapshot = true + +[projects."/home/sudacode/projects"] +trust_level = "trusted" diff --git a/.config/SubMiner/config.jsonc##os.Linux b/.config/SubMiner/config.jsonc##os.Linux index 316c965..57085ef 100644 --- a/.config/SubMiner/config.jsonc##os.Linux +++ b/.config/SubMiner/config.jsonc##os.Linux @@ -109,6 +109,14 @@ "fontColor": "#cad3f5", "backgroundColor": "transparent", }, + "frequencyDictionary": { + "enabled": true, + "sourcePath": "", + "topX": 10000, + "mode": "single", + "singleColor": "#f5a97f", + "bandedColors": ["#ed8796", "#f5a97f", "#f9e2af", "#a6e3a1", "#8aadf4"], + }, }, "jimaku": { // "apiKey": "YOUR_API_KEY", @@ -128,4 +136,11 @@ "whisperBin": "/usr/bin/whisper-cli", "whisperModel": "~/models/whisper.cpp/ggml-small.bin", }, + "anilist": { + "accessToken": "cat ~/.anilist-token.txt", + }, + "immersionTracking": { + "enabled": true, + "dbPath": "", + }, } diff --git a/.config/opencode/opencode.json b/.config/opencode/opencode.json index 8d3b32b..b492e35 100644 --- a/.config/opencode/opencode.json +++ b/.config/opencode/opencode.json @@ -75,7 +75,35 @@ ".cursor/rules/*.md" ], "permission": { - "edit": "ask", - "bash": "ask" + "edit": { + "*": "ask", + "*.md": "allow", + "~/projects/japanese/SubMiner/*": "allow" + }, + "grep": "allow", + "glob": "allow", + "list": "allow", + "task": "allow", + "skill": "allow", + "webfetch": "allow", + "websearch": "allow", + "codesearch": "allow", + "read": { + "*": "allow", + "*.env": "deny", + "*.env.*": "deny", + "*.env.example": "allow" + }, + "bash": { + "*": "ask", + "git *": "allow", + "pnpm *": "allow", + "rm *": "deny", + "grep *": "allow" + }, + "external_directory": { + "*": "ask", + "~/projects/*": "allow" + } } }