Skip to content

Commit 7216984

Browse files
committed
Merge pull request #4930 from udecode/codex/4111-table-border-wrong-cell
1 parent 4eb727d commit 7216984

110 files changed

Lines changed: 2016 additions & 796 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/AGENTS.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
- `.agents/AGENTS.md` and `.agents/rules/*.mdc` are source of truth. After editing them, run `bun install` to sync. Never edit `SKILL.md` directly.
12
- In all interactions and commit messages, be extremely concise and sacrifice grammar for the sake of concision.
23
- ALWAYS read and understand relevant files before proposing edits. Do not speculate about code you have not inspected.
3-
- Never browse GitHub, use `gh` instead. Use `dig` skill when the user asks a question about a library, needs to understand a library's API, or when you need information about a library that you don't know about.
4+
- Never browse GitHub files. For library/API questions or unfamiliar deps, inspect the repo at `..`; if missing, clone `https://github.com/{owner}/{repo}.git` to `../{repo-name}`.
5+
- For repo research, use `spawn_agent(... agent_type=\"explorer\")` and return file-backed findings from docs, structure, exports, examples, and tests only.
46
- Dirty workspace: Never pause to ask about unrelated local changes. Continue work and ignore unrelated diffs.
57
- Proactively use Skill(tdd) when it adds value; skip TDD for high-friction tests like slow React or browser flows.
68

@@ -10,7 +12,7 @@ When using the following skills, override the default behavior.
1012

1113
`planning-with-files`:
1214

13-
- Do not create `task_plan.md`, `findings.md`, or `progress.md` at repo root. Merge that content into one file under `.claude/docs/plans/`. Example: `.claude/docs/plans/2026-03-11-task.md`
15+
- Do not create `task_plan.md`, `findings.md`, or `progress.md` at repo root. Merge that content into one file under `docs/plans/`. Example: `docs/plans/2026-03-11-task.md`
1416

1517
`dev-browser`:
1618

@@ -27,7 +29,7 @@ When using the following skills, override the default behavior.
2729

2830
- **Git:** Never git add, commit, push, or create PR unless the user explicitly asks.
2931
- **PR:** Before creating or updating a PR, run the local verification that actually matters here. At minimum: `bun run typecheck`, `bun run lint:fix`, and `bun run build` if the task touched app behavior or build config.
30-
- **plan:** Include test-browser in acceptance criteria for browser features.
32+
- **plan:** Include `dev-browser` in acceptance criteria for browser features.
3133
- **deepen-plan:** Context7 only when not covered by skills.
3234
- **work:** UI tasks require browser verification before marking complete. Never guess.
3335

.agents/rules/1-app-design-document.mdc

Lines changed: 0 additions & 5 deletions
This file was deleted.

.agents/rules/2-tech-stack.mdc

Lines changed: 0 additions & 5 deletions
This file was deleted.

.agents/rules/3-project-status.mdc

Lines changed: 0 additions & 29 deletions
This file was deleted.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
description: Open a concise GitHub follow-up for reusable dev-browser or agent-browser limitations. Use when browser automation is blocked by a likely tool-side issue that is worth fixing separately, especially for clicks, dropdowns, file inputs, focus traps, or other repeatable agent/browser failures.
3+
argument-hint: '[browser block summary]'
4+
disable-model-invocation: true
5+
---
6+
7+
# Agent Browser Issue
8+
9+
Handle $ARGUMENTS.
10+
11+
Use this only for likely reusable agent/browser tooling bugs. Do not use it for:
12+
13+
- auth or SSO gates
14+
- manual human gates
15+
- product bugs on the site itself
16+
- one-off flaky noise with no minimal repro
17+
18+
## Collect
19+
20+
Capture only the minimum:
21+
22+
- page or URL
23+
- action attempted
24+
- exact block
25+
- expected vs actual
26+
- minimal repro
27+
- screenshot only if it adds signal
28+
29+
## Issue
30+
31+
Open a GitHub issue with:
32+
33+
- a short title focused on the browser/tool failure
34+
- label `agent:browser`
35+
- concise body
36+
37+
Body shape:
38+
39+
```md
40+
## URL
41+
<url>
42+
43+
## Action
44+
<what the agent tried>
45+
46+
## Block
47+
<what failed>
48+
49+
## Expected
50+
<what should have happened>
51+
52+
## Actual
53+
<what happened instead>
54+
55+
## Repro
56+
1. ...
57+
2. ...
58+
3. ...
59+
```
60+
61+
## After
62+
63+
- if the browser/tool failure exposes a user-action parity gap, load `agent-native-reviewer` and note that gap in the issue
64+
- link the issue in the task caveat or handoff
65+
- keep moving if the product task is still otherwise fixable
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
---
2+
description: One-time setup for a persistent debug browser on `127.0.0.1:9222` for `dev-browser --connect`. Use when browser work is needed but no reusable debug browser is running yet.
3+
---
4+
5+
# Browser Debug Setup
6+
7+
Use this skill when `dev-browser --connect http://127.0.0.1:9222` fails because
8+
no persistent debug browser is running yet.
9+
10+
## Goal
11+
12+
Get the user onto one persistent browser/profile that both the human and the
13+
agent reuse. Minimize the `Allow remote debugging?` popup by keeping one
14+
dedicated debug browser/profile alive.
15+
16+
## Rules
17+
18+
- Prefer one permanent debug browser/profile over disposable automation
19+
browsers.
20+
- Treat a custom `--user-data-dir` as mandatory, not optional. Chrome 136+
21+
basically wants remote debugging to happen from a dedicated profile.
22+
- Keep auth in that profile. Do not fall back to cookie dumps or state files
23+
unless the user asks.
24+
- Use a separate signed-in Chrome profile for browser work, like `dev`. Do not
25+
use the user's normal daily `Default` profile as the source profile.
26+
- Clone that separate signed-in Chrome profile into the dedicated debug
27+
`--user-data-dir`; do not point `9222` straight at the user's daily Chrome
28+
data dir.
29+
- On macOS, use `open -na "Google Chrome" --args ...` for the debug browser.
30+
That starts a separate Chrome instance with the dedicated debug profile
31+
without touching the user's normal Chrome window.
32+
33+
## Preferred Shape
34+
35+
Use a dedicated browser/profile with:
36+
37+
- `--remote-debugging-address=127.0.0.1`
38+
- `--remote-debugging-port=9222`
39+
- a persistent `--user-data-dir=<debug-profile-dir>`
40+
41+
Sign in once in that dedicated browser and keep reusing it for agent work.
42+
43+
Quick sanity check:
44+
45+
```bash
46+
curl -sS http://127.0.0.1:9222/json/version
47+
```
48+
49+
Healthy output includes a JSON object with `webSocketDebuggerUrl`. Empty output
50+
or `404` means the wrong process owns `9222`.
51+
52+
Then verify `dev-browser`:
53+
54+
```bash
55+
dev-browser --connect http://127.0.0.1:9222 <<'EOF'
56+
const page = await browser.getPage("persistent-main");
57+
console.log(await page.title());
58+
EOF
59+
```
60+
61+
If `dev-browser --connect http://127.0.0.1:9222` still cannot resolve CDP even
62+
though `/json/version` is healthy, connect with the exact websocket URL:
63+
64+
```bash
65+
WS=$(curl -sS http://127.0.0.1:9222/json/version | jq -r '.webSocketDebuggerUrl')
66+
67+
dev-browser --connect "$WS" <<'EOF'
68+
const page = await browser.getPage("persistent-main");
69+
console.log(await page.title());
70+
EOF
71+
```
72+
73+
## Google Chrome Path
74+
75+
Default setup on macOS:
76+
77+
1. Pick a separate signed-in Chrome profile for agent work, like `dev`, not
78+
the daily `Default` profile.
79+
2. Map that human-facing Chrome profile name to the real folder in `Local State`.
80+
3. Clone that profile into the dedicated debug dir.
81+
4. Launch a separate Chrome instance on `9222`.
82+
5. Leave that debug window open and reuse it.
83+
84+
```bash
85+
python3 - <<'PY'
86+
import json, pathlib
87+
p = pathlib.Path('~/Library/Application Support/Google/Chrome/Local State').expanduser()
88+
obj = json.loads(p.read_text())
89+
for key, val in obj.get('profile', {}).get('info_cache', {}).items():
90+
print(f"{key}\tname={val.get('name')}\tgaia_name={val.get('gaia_name')}")
91+
PY
92+
93+
# Example: if `dev` maps to `Profile 1`, clone `Profile 1`.
94+
mkdir -p "$HOME/.config/google-chrome-debug-profile/Default"
95+
rsync -a --delete \
96+
--exclude='Singleton*' \
97+
--exclude='DevToolsActivePort' \
98+
--exclude='lockfile' \
99+
"$HOME/Library/Application Support/Google/Chrome/Profile 1/" \
100+
"$HOME/.config/google-chrome-debug-profile/Default/"
101+
cp "$HOME/Library/Application Support/Google/Chrome/Local State" \
102+
"$HOME/.config/google-chrome-debug-profile/Local State"
103+
104+
open -na "Google Chrome" --args \
105+
--user-data-dir="$HOME/.config/google-chrome-debug-profile" \
106+
--profile-directory="Default" \
107+
--remote-debugging-address=127.0.0.1 \
108+
--remote-debugging-port=9222
109+
```
110+
111+
That keeps the signed-in identity while still satisfying Chrome's dedicated
112+
`--user-data-dir` requirement.
113+
114+
Then keep reusing that exact debug browser. Do not point `9222` at your normal
115+
daily `Default` Chrome profile.
116+
117+
## After Setup
118+
119+
- Use `dev-browser --connect http://127.0.0.1:9222` for browser work.
120+
- Reuse named pages like `persistent-main`.
121+
- Do not stop the user's debug browser unless they ask.
122+
- If the wrong Chrome steals `9222`, identify it with `lsof -nP -iTCP:9222 -sTCP:LISTEN`,
123+
kill that listener, and relaunch the dedicated debug browser. Do not keep
124+
debugging against a stale `404` or empty `/json/version` owner.

.agents/rules/components.mdc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
description: React component architecture for creating composable, accessible components with data attributes. Use when creating/updating composable components, not for higher-level feature/page components.
3+
---
4+
15
# Accessibility
26

37
URL: /accessibility

.agents/rules/grill-me.mdc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
3+
---
4+
5+
Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
6+
7+
If a question can be answered by exploring the codebase, explore the codebase instead.

.agents/rules/hard-cut.mdc

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
description: Remove a feature completely with no backward compatibility. Use when the user says "hard cut", "rip it out", "delete it", "unship", "kill this feature", or wants dead code removed instead of deprecated. Delete the surface, callers, tests, docs, comments, fallbacks, and stubs.
3+
---
4+
5+
# Hard Cut
6+
7+
Use this when a feature should die, not linger.
8+
9+
## Rules
10+
11+
- Delete the surface. Do not deprecate it.
12+
- Do not leave `throw new Error("Not implemented")`, placeholder notices,
13+
"feature removed" banners, or TODOs about bringing it back unless the user
14+
explicitly asks.
15+
- Do not keep compatibility aliases, deprecated shims, fallback parsing,
16+
migration bridges, or dead exports.
17+
- Delete tests for deleted behavior. Keep tests only for the behavior that
18+
still exists.
19+
- Delete comments that describe deleted code or mourn the old feature.
20+
- If removal exposes adjacent dead code, keep cutting until the graph is clean.
21+
22+
## Sweep
23+
24+
1. Find the real surface area:
25+
- exports
26+
- commands and flags
27+
- routes
28+
- UI entrypoints
29+
- feature flags
30+
- docs and examples
31+
2. Trace references with `rg`.
32+
3. Delete the implementation and the glue:
33+
- call sites
34+
- types
35+
- state
36+
- tests
37+
- docs
38+
- comments
39+
4. Grep again for the removed name and obvious aliases.
40+
5. Run the narrowest honest verification for the surviving product.
41+
42+
## Smells
43+
44+
- deprecated notices
45+
- not-implemented throws
46+
- stub handlers
47+
- dead enum or union members
48+
- permanently-false feature-flag branches
49+
- unused env vars and config
50+
- tests that only prove the deleted feature used to exist
51+
52+
## Bias
53+
54+
If the choice is between deleting more code and leaving a zombie seam, delete
55+
more code.

.agents/skiller.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
# Default agents to apply when --agents flag is not specified
2-
default_agents = ["claude-code", "codex"]
1+
default_agents = [ "claude-code", "codex" ]
32

43
[rules]
54
merge_strategy = "cursor"
@@ -19,7 +18,7 @@ merge_strategy = "merge"
1918

2019
[mcp_servers.plate]
2120
command = "npx"
22-
args = ["-y", "shadcn@latest", "mcp"]
21+
args = [ "-y", "shadcn@latest", "mcp" ]
2322

2423
[agents.claude-code]
2524
enabled = true

0 commit comments

Comments
 (0)