skills/: player-only corpus — remove verify-yo-*, migrate QA to docs/testing, add local TS/Python scripting skill #100

Closed
opened 2026-04-30 05:25:08 +00:00 by PlasticDigits · 12 comments
PlasticDigits commented 2026-04-30 05:25:08 +00:00 (Migrated from gitlab.com)

Problem

The repository root skills/ directory is documented as play / participant guidance (skills/README.md, docs/agents/metadata-and-skills.md), but most entries are verify-yo-* skills aimed at maintainers and QA: Playwright + Anvil harness rules, wagmi/RPC invariants, frontend visual QA, indexer disconnect UX, fee-sink responsive layout, album BGM regressions, cast post-end verification recipes, etc.

That trains Cursor and other agents to treat skills/ as a second contributor manual, blurring the line between:

  • Players / agents helping players — understand onchain rules, use wallets, optionally run local automation.
  • Contributors — change frontend/, contracts/, tests; follow .cursor/skills/ and docs/testing/.

Product expectation (from discussion): skills/ must only serve users/players. If a participant writes code, it should be TypeScript or Python, locally, to interact with deployed contracts more easily — not patches to this repo unless they are genuine contributors.

Today there is no dedicated play skill that explains how to author those local scripts (reads vs writes, proxy addresses, CHARM bounds, cooldowns, timing near sale end — e.g. a “last buy” helper). Agents improvising that guidance risks suggesting repo edits or unsafe assumptions.

Goals

  1. skills/ directory contains only player-facing skills (protocol mechanics, ethics framing, optional local TS/Python scripting).

  2. All QA / verification / harness documentation currently embedded in verify-yo-* skills is preserved by moving it into docs/testing/ (new consolidated doc or explicit sections in existing files — implementer’s choice, but no orphaned GitLab issue references).

  3. Existing play skills (play-*, collect-*, why-*) are revised so they emphasize using the protocol and explicitly discourage suggesting changes to yieldomega source trees unless the user declares contributor intent (Phase 18 / .cursor/skills/yieldomega-guardrails).

  4. Add at least one new skill under skills/ that documents local participant scripting patterns (including timing-sensitive buys / “last buy” style flows) with TS or Python only, env hygiene, and pointers to authoritative contract + deployment docs.

Non-goals

  • Removing or renaming contributor skills under .cursor/skills/ (including yieldomega-guardrails).

  • Rewriting the entire testing strategy; only relocating verify-skill prose and fixing every inbound link.


1. Delete (entire directories under skills/)

Each folder below contains a SKILL.md (and nothing else of structural importance). Remove the directory tree entirely after content migration (§3).

Path Current purpose (contributor/QA)
skills/verify-yo-anvil-buy-cooldown/ DeployDev buyCooldownSec env for multi-buy Anvil QA (#88)
skills/verify-yo-bot-swarm-local-anvil/ start-local-anvil-stack.sh + --block-time + cooldown vs frozen timestamps (#99)
skills/verify-yo-chain-write-network/ Wrong chainId write gating vs VITE_CHAIN_ID (#95)
skills/verify-yo-e2e-anvil/ Playwright workers:1, fullyParallel, pay-mode data-testid (#87)
skills/verify-yo-fee-sinks-mobile/ Footer / protocol page fee sink abbreviations + mega.etherscan (#93)
skills/verify-yo-focus-visible-a11y/ :focus-visible + RainbowKit (#97)
skills/verify-yo-indexer-offline-ux/ Indexer disconnect pill, backoff, Recent buys empty state (#96)
skills/verify-yo-local-wagmi-single-chain/ No stray mainnet RPC (e.g. merkle) on Anvil (#81)
skills/verify-yo-presale-vesting/ Hidden /vesting, DoubPresaleVesting UX (#92)
skills/verify-yo-referrals-surface/ /referrals shell, register, storage keys, leaderboard API (#64, #85, #94)
skills/verify-yo-sniper-shark-ui/ Arena sniper-shark mascot placement / a11y (#80)
skills/verify-yo-timecurve-buy-charm-submit/ Submit-time CHARM bounds margins, Kumbaya deadline vs warp (#82, #83)
skills/verify-yo-timecurve-buy-router-anvil/ TimeCurveBuyRouter fork script, registry, indexer (#65, #78, #84)
skills/verify-yo-timecurve-post-end-gates/ Post-end redeemCharms / distributePrizes owner gates, verify shell script (#79, #55)
skills/verify-yo-timecurve-stake-redeemed-ui/ Simple stake-at-launch after redeem (#90)
skills/verify-yo-album-bgm-resume/ Album 1 BGM track + offset persistence (#71)

Count: 15 directories.


2. Keep (revise in place)

These remain under skills/ and receive tone + scope edits per §4:

  • skills/why-yieldomega-participation-matters/SKILL.md
  • skills/play-timecurve-doubloon/SKILL.md
  • skills/play-timecurve-warbow/SKILL.md
  • skills/play-rabbit-treasury/SKILL.md
  • skills/collect-leprechaun-sets/SKILL.md

3. Migrate verify content → contributor docs (required before delete)

Do not lose procedural detail. Each deleted SKILL.md contains checklists, commands, and GitLab cross-links that contributors rely on.

Add docs/testing/manual-qa-checklists.md (name flexible) with a table of contents grouped by theme, and paste or adapt sections from each verify-yo-* skill into the appropriate subsection. Alternatively, fold sections into existing files (must preserve discoverability):

Source skill (being removed) Suggested primary home
verify-yo-e2e-anvil docs/testing/e2e-anvil.md — expand § concurrency / pay-mode checklist; or manual-qa doc § Playwright
verify-yo-anvil-buy-cooldown docs/testing/e2e-anvil.md § DeployDev buy cooldown (already references skill — inline the checklist)
verify-yo-bot-swarm-local-anvil docs/testing/e2e-anvil.md § bot swarm + chain time; align with docs/testing/invariants-and-business-logic.md § #99
verify-yo-local-wagmi-single-chain docs/testing/invariants-and-business-logic.md § #81 + optional DevTools steps
verify-yo-chain-write-network docs/frontend/wallet-connection.md + invariants § #95
verify-yo-timecurve-post-end-gates docs/testing/anvil-rich-state.md post-end walkthrough + link to scripts/verify-timecurve-post-end-gates-anvil.sh
verify-yo-timecurve-buy-router-anvil docs/integrations/kumbaya.md + docs/testing/ script notes
verify-yo-timecurve-buy-charm-submit docs/frontend/timecurve-views.md + docs/integrations/kumbaya.md
verify-yo-referrals-surface docs/product/referrals.md + invariants § referrals
Remaining UI/visual/indexer/a11y/BGM/vesting/fee-sink/stake-redeemed Matching docs/frontend/*.md sections or dedicated subsections in manual-qa-checklists.md

Link the new or expanded doc from docs/testing/strategy.md so contributors find it in one hop.


4. Revise remaining play skills (content requirements)

For each of the five kept skills:

  1. Opening paragraph: state audience = players and agents assisting players; not repo contributors unless explicitly stated by the user.

  2. Hard rule: do not propose merge requests, edits under frontend/, contracts/, indexer/, or CI — redirect contributors to Phase 18 and .cursor/skills/yieldomega-guardrails.

  3. Optional automation: single subsection pointing to the new skills/script-with-timecurve-local/SKILL.md (§5) for TS/Python.

  4. Fix internal consistency: e.g. docs/agents/metadata-and-skills.md currently says “four” reserve podiums for Doubloon while skills/README.md says “three” — align all hub tables with docs/product/primitives.md / TimeCurve docs.


5. Add: skills/script-with-timecurve-local/SKILL.md (new)

New player-facing skill. Suggested sections:

A. Scope and languages

  • TypeScript (viem, ethers) or Python (web3.py) — local scripts only; user-owned repo or scratch folder.
  • Never imply that participant scripts belong inside PlasticDigits/yieldomega unless opening a contributor MR.

B. Environment and addresses

C. Read-before-write checklist

  • Sale phase / timer / ended (or equivalent reads).
  • currentCharmBoundsWad (or documented ABI name) — participant must size CHARM inside [min, max].
  • Per-wallet buy cooldown / next allowed timestamp if applicable.
  • Token balances and allowances for accepted asset / router paths.
  • Optional: link to bots/timecurve/README.md inspect as a reference implementation for reads (still participant-local if they copy patterns).

D. “Last buy” and timing-sensitive buys

Document process, not financial advice:

  • Define intent: user wants a transaction included before endSale / phase transition, competing with others and clock skew.
  • Onchain sources of truth vs indexer/UI latency — scripts should prefer RPC reads for deadlines.
  • Revert risks: bounds violations, cooldown, sale already ended, insufficient liquidity/slippage on router paths, gas spikes.
  • Mempool / ordering: no guarantees; optional mention of private RPC / Flashbots-style flows only as neutral facts, not encouragement.
  • Pattern: poll latest block timestamp + sale deadline → compute lead time → build tx → sign/send with conservative gas/nonce handling; optional dry-run (eth_call).
  • Point to canonical method names and integrations in docs/integrations/kumbaya.md and TimeCurve ABI sources under contracts/ as read-only references (participants import ABI JSON locally).

E. Referrals, buyFor, routers

Short orientation + links to product/integration docs — enough for a script author to know which doc to read, without duplicating full router specs.

F. Safety / ethics

Cross-link skills/why-yieldomega-participation-matters/SKILL.md: voluntary participation, informed consent, no promises of profit.

G. Relationship to in-repo bots

  • bots/timecurve/ is maintained project code (AGPL). Participants may learn from it or run it locally on Anvil per its README; the skill should not tell casual players to fork bots into production without understanding AGPL and ops risk.

Register the new skill in skills/README.md and docs/agents/metadata-and-skills.md.


After deletion, rg 'skills/verify-yo' must return zero matches in the repo (except archived changelog if any).

Files currently known to reference skills/verify-yo-* (replace with docs/testing/... anchors or the new manual QA doc):

File
skills/README.md
docs/agents/metadata-and-skills.md
docs/testing/invariants-and-business-logic.md
docs/testing/e2e-anvil.md
docs/frontend/timecurve-views.md
docs/frontend/wallet-connection.md
scripts/start-local-anvil-stack.sh (comment)
bots/timecurve/SKILL.md
bots/timecurve/README.md
skills/verify-yo-anvil-buy-cooldown/SKILL.md (deleted — fix before delete any cross-links internal to other verify skills during migration)

Re-run from repo root:

rg 'skills/verify-yo' .
rg 'verify-yo-' skills/

Fix .cursor/skills/yieldomega-guardrails/SKILL.md only if it ever references skills/verify-yo-* (currently it mainly references docs/testing/ — verify after grep).


7. Acceptance criteria

  • No directory under skills/ matches skills/verify-yo-*.
  • skills/ contains exactly six play-facing skills: five existing (revised) + script-with-timecurve-local (or agreed name).
  • rg 'skills/verify-yo' → no results in tracked files.
  • Contributor QA content from former verify skills is reachable from docs/testing/ (strategy + e2e-anvil + new manual doc or expanded sections).
  • Hub docs (skills/README.md, docs/agents/metadata-and-skills.md) no longer label QA checklists as “play skills.”
  • CI / links check (if present) still passes.

The deleted skills reference many GitLab issues (e.g. #64, #65, #71, #78, #79, #80, #81, #82, #83, #84, #87, #88, #90, #92, #93, #94, #95, #96, #97, #99). Migration should preserve those links inside contributor docs so archaeology remains intact.


Implementation notes for MR author

  • Prefer one MR with commits: (1) add migrated doc sections, (2) switch all links, (3) delete skills/verify-yo-*, (4) add new scripting skill + revise play skills.
  • If description length on GitLab is a concern, split migration tables into the MR description and keep this issue as overview — but do not skip the migration matrix in the MR itself.
## Problem The repository root [`skills/`](https://gitlab.com/PlasticDigits/yieldomega/-/tree/main/skills) directory is documented as **play / participant** guidance ([`skills/README.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/skills/README.md), [`docs/agents/metadata-and-skills.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/agents/metadata-and-skills.md)), but **most entries are `verify-yo-*` skills** aimed at **maintainers and QA**: Playwright + Anvil harness rules, wagmi/RPC invariants, frontend visual QA, indexer disconnect UX, fee-sink responsive layout, album BGM regressions, **`cast`** post-end verification recipes, etc. That trains Cursor and other agents to treat `skills/` as a **second contributor manual**, blurring the line between: - **Players / agents helping players** — understand onchain rules, use wallets, optionally run **local** automation. - **Contributors** — change `frontend/`, `contracts/`, tests; follow `.cursor/skills/` and `docs/testing/`. Product expectation (from discussion): **`skills/` must only serve users/players.** If a participant writes code, it should be **TypeScript or Python, locally**, to interact with **deployed** contracts more easily — **not** patches to this repo unless they are genuine contributors. Today there is **no dedicated play skill** that explains **how** to author those local scripts (reads vs writes, proxy addresses, CHARM bounds, cooldowns, timing near sale end — e.g. a **“last buy”** helper). Agents improvising that guidance risks suggesting repo edits or unsafe assumptions. ## Goals 1. **`skills/` directory contains only player-facing skills** (protocol mechanics, ethics framing, optional **local TS/Python** scripting). 2. **All QA / verification / harness documentation** currently embedded in `verify-yo-*` skills is **preserved** by moving it into **`docs/testing/`** (new consolidated doc or explicit sections in existing files — implementer’s choice, but **no orphaned GitLab issue references**). 3. **Existing play skills** (`play-*`, `collect-*`, `why-*`) are revised so they **emphasize using the protocol** and **explicitly discourage** suggesting changes to yieldomega source trees unless the user declares contributor intent (Phase 18 / `.cursor/skills/yieldomega-guardrails`). 4. **Add** at least one new skill under `skills/` that documents **local participant scripting** patterns (including timing-sensitive buys / “last buy” style flows) with **TS or Python only**, env hygiene, and pointers to authoritative contract + deployment docs. ## Non-goals - Removing or renaming **contributor** skills under [`.cursor/skills/`](https://gitlab.com/PlasticDigits/yieldomega/-/tree/main/.cursor/skills) (including [`yieldomega-guardrails`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/.cursor/skills/yieldomega-guardrails/SKILL.md)). - Rewriting the entire testing strategy; only **relocating** verify-skill prose and **fixing every inbound link**. --- ## 1. Delete (entire directories under `skills/`) Each folder below contains a `SKILL.md` (and nothing else of structural importance). **Remove the directory tree entirely** after content migration (§3). | Path | Current purpose (contributor/QA) | |------|----------------------------------| | `skills/verify-yo-anvil-buy-cooldown/` | DeployDev `buyCooldownSec` env for multi-buy Anvil QA (#88) | | `skills/verify-yo-bot-swarm-local-anvil/` | `start-local-anvil-stack.sh` + `--block-time` + cooldown vs frozen timestamps (#99) | | `skills/verify-yo-chain-write-network/` | Wrong `chainId` write gating vs `VITE_CHAIN_ID` (#95) | | `skills/verify-yo-e2e-anvil/` | Playwright `workers:1`, `fullyParallel`, pay-mode `data-testid` (#87) | | `skills/verify-yo-fee-sinks-mobile/` | Footer / protocol page fee sink abbreviations + mega.etherscan (#93) | | `skills/verify-yo-focus-visible-a11y/` | `:focus-visible` + RainbowKit (#97) | | `skills/verify-yo-indexer-offline-ux/` | Indexer disconnect pill, backoff, Recent buys empty state (#96) | | `skills/verify-yo-local-wagmi-single-chain/` | No stray mainnet RPC (e.g. merkle) on Anvil (#81) | | `skills/verify-yo-presale-vesting/` | Hidden `/vesting`, DoubPresaleVesting UX (#92) | | `skills/verify-yo-referrals-surface/` | `/referrals` shell, register, storage keys, leaderboard API (#64, #85, #94) | | `skills/verify-yo-sniper-shark-ui/` | Arena sniper-shark mascot placement / a11y (#80) | | `skills/verify-yo-timecurve-buy-charm-submit/` | Submit-time CHARM bounds margins, Kumbaya deadline vs warp (#82, #83) | | `skills/verify-yo-timecurve-buy-router-anvil/` | TimeCurveBuyRouter fork script, registry, indexer (#65, #78, #84) | | `skills/verify-yo-timecurve-post-end-gates/` | Post-end `redeemCharms` / `distributePrizes` owner gates, verify shell script (#79, #55) | | `skills/verify-yo-timecurve-stake-redeemed-ui/` | Simple stake-at-launch after redeem (#90) | | `skills/verify-yo-album-bgm-resume/` | Album 1 BGM track + offset persistence (#71) | **Count:** 15 directories. --- ## 2. Keep (revise in place) These remain under `skills/` and receive **tone + scope** edits per §4: - `skills/why-yieldomega-participation-matters/SKILL.md` - `skills/play-timecurve-doubloon/SKILL.md` - `skills/play-timecurve-warbow/SKILL.md` - `skills/play-rabbit-treasury/SKILL.md` - `skills/collect-leprechaun-sets/SKILL.md` --- ## 3. Migrate verify content → contributor docs (required before delete) **Do not lose procedural detail.** Each deleted `SKILL.md` contains checklists, commands, and GitLab cross-links that contributors rely on. ### Recommended approach Add **`docs/testing/manual-qa-checklists.md`** (name flexible) with a **table of contents grouped by theme**, and **paste or adapt** sections from each `verify-yo-*` skill into the appropriate subsection. Alternatively, fold sections into existing files (**must** preserve discoverability): | Source skill (being removed) | Suggested primary home | |------------------------------|-------------------------| | `verify-yo-e2e-anvil` | `docs/testing/e2e-anvil.md` — expand § concurrency / pay-mode checklist; or manual-qa doc § Playwright | | `verify-yo-anvil-buy-cooldown` | `docs/testing/e2e-anvil.md` § DeployDev buy cooldown (already references skill — inline the checklist) | | `verify-yo-bot-swarm-local-anvil` | `docs/testing/e2e-anvil.md` § bot swarm + chain time; align with `docs/testing/invariants-and-business-logic.md` § #99 | | `verify-yo-local-wagmi-single-chain` | `docs/testing/invariants-and-business-logic.md` § #81 + optional DevTools steps | | `verify-yo-chain-write-network` | `docs/frontend/wallet-connection.md` + invariants § #95 | | `verify-yo-timecurve-post-end-gates` | `docs/testing/anvil-rich-state.md` post-end walkthrough + link to `scripts/verify-timecurve-post-end-gates-anvil.sh` | | `verify-yo-timecurve-buy-router-anvil` | `docs/integrations/kumbaya.md` + `docs/testing/` script notes | | `verify-yo-timecurve-buy-charm-submit` | `docs/frontend/timecurve-views.md` + `docs/integrations/kumbaya.md` | | `verify-yo-referrals-surface` | `docs/product/referrals.md` + invariants § referrals | | Remaining UI/visual/indexer/a11y/BGM/vesting/fee-sink/stake-redeemed | Matching `docs/frontend/*.md` sections **or** dedicated subsections in `manual-qa-checklists.md` | Link the new or expanded doc from [`docs/testing/strategy.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/testing/strategy.md) so contributors find it in one hop. --- ## 4. Revise remaining play skills (content requirements) For **each** of the five kept skills: 1. **Opening paragraph:** state audience = **players and agents assisting players**; **not** repo contributors unless explicitly stated by the user. 2. **Hard rule:** do **not** propose merge requests, edits under `frontend/`, `contracts/`, `indexer/`, or CI — redirect contributors to **Phase 18** and [`.cursor/skills/yieldomega-guardrails`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/.cursor/skills/yieldomega-guardrails/SKILL.md). 3. **Optional automation:** single subsection pointing to the **new** `skills/script-with-timecurve-local/SKILL.md` (§5) for TS/Python. 4. **Fix internal consistency:** e.g. [`docs/agents/metadata-and-skills.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/agents/metadata-and-skills.md) currently says **“four”** reserve podiums for Doubloon while [`skills/README.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/skills/README.md) says **“three”** — align all hub tables with [`docs/product/primitives.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/product/primitives.md) / TimeCurve docs. --- ## 5. Add: `skills/script-with-timecurve-local/SKILL.md` (new) New **player-facing** skill. Suggested sections: ### A. Scope and languages - **TypeScript** (viem, ethers) or **Python** (web3.py) — **local scripts only**; user-owned repo or scratch folder. - **Never** imply that participant scripts belong inside PlasticDigits/yieldomega unless opening a contributor MR. ### B. Environment and addresses - RPC URL, chain ID, private key / wallet policy (env vars, no commits). - **UUPS proxies:** read **`TimeCurve` proxy** (and siblings) from deployment artifacts / explorer — cite [`docs/testing/anvil-rich-state.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/testing/anvil-rich-state.md) and [`docs/contracts/foundry-and-megaeth.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/contracts/foundry-and-megaeth.md) where relevant; **do not** call implementation addresses for live state (#61). ### C. Read-before-write checklist - Sale phase / timer / `ended` (or equivalent reads). - **`currentCharmBoundsWad`** (or documented ABI name) — participant must size CHARM inside **[min, max]**. - Per-wallet **buy cooldown** / next allowed timestamp if applicable. - Token balances and **allowances** for accepted asset / router paths. - Optional: link to [`bots/timecurve/README.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/bots/timecurve/README.md) **`inspect`** as a **reference implementation** for reads (still participant-local if they copy patterns). ### D. “Last buy” and timing-sensitive buys Document **process**, not financial advice: - Define intent: user wants a transaction **included before** `endSale` / phase transition, competing with others and clock skew. - **Onchain sources of truth** vs indexer/UI latency — scripts should prefer RPC reads for deadlines. - **Revert risks:** bounds violations, cooldown, sale already ended, insufficient liquidity/slippage on router paths, gas spikes. - **Mempool / ordering:** no guarantees; optional mention of private RPC / Flashbots-style flows only as **neutral facts**, not encouragement. - **Pattern:** poll `latest` block timestamp + sale deadline → compute lead time → build tx → sign/send with conservative gas/nonce handling; optional dry-run (`eth_call`). - Point to **canonical method names** and integrations in [`docs/integrations/kumbaya.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/integrations/kumbaya.md) and TimeCurve ABI sources under `contracts/` **as read-only references** (participants import ABI JSON locally). ### E. Referrals, `buyFor`, routers Short orientation + links to product/integration docs — enough for a script author to know **which doc to read**, without duplicating full router specs. ### F. Safety / ethics Cross-link [`skills/why-yieldomega-participation-matters/SKILL.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/skills/why-yieldomega-participation-matters/SKILL.md): voluntary participation, informed consent, no promises of profit. ### G. Relationship to in-repo bots - [`bots/timecurve/`](https://gitlab.com/PlasticDigits/yieldomega/-/tree/main/bots/timecurve) is **maintained project code** (AGPL). Participants may **learn** from it or run it locally on Anvil per its README; the skill should **not** tell casual players to fork bots into production without understanding AGPL and ops risk. Register the new skill in [`skills/README.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/skills/README.md) and [`docs/agents/metadata-and-skills.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/agents/metadata-and-skills.md). --- ## 6. Update every inbound link (mandatory) After deletion, **`rg 'skills/verify-yo'` must return zero matches** in the repo (except archived changelog if any). Files **currently known** to reference `skills/verify-yo-*` (replace with `docs/testing/...` anchors or the new manual QA doc): | File | |------| | `skills/README.md` | | `docs/agents/metadata-and-skills.md` | | `docs/testing/invariants-and-business-logic.md` | | `docs/testing/e2e-anvil.md` | | `docs/frontend/timecurve-views.md` | | `docs/frontend/wallet-connection.md` | | `scripts/start-local-anvil-stack.sh` (comment) | | `bots/timecurve/SKILL.md` | | `bots/timecurve/README.md` | | `skills/verify-yo-anvil-buy-cooldown/SKILL.md` (deleted — fix **before** delete any cross-links internal to other verify skills during migration) | Re-run from repo root: ```bash rg 'skills/verify-yo' . rg 'verify-yo-' skills/ ``` Fix **`.cursor/skills/yieldomega-guardrails/SKILL.md`** only if it ever references `skills/verify-yo-*` (currently it mainly references `docs/testing/` — verify after grep). --- ## 7. Acceptance criteria - [ ] No directory under `skills/` matches `skills/verify-yo-*`. - [ ] `skills/` contains exactly **six** play-facing skills: five existing (revised) + **`script-with-timecurve-local`** (or agreed name). - [ ] `rg 'skills/verify-yo'` → **no results** in tracked files. - [ ] Contributor QA content from former verify skills is **reachable** from `docs/testing/` (strategy + e2e-anvil + new manual doc or expanded sections). - [ ] Hub docs (`skills/README.md`, `docs/agents/metadata-and-skills.md`) **no longer** label QA checklists as “play skills.” - [ ] CI / links check (if present) still passes. --- ## 8. Related historical issues (context only) The deleted skills reference many GitLab issues (e.g. #64, #65, #71, #78, #79, #80, #81, #82, #83, #84, #87, #88, #90, #92, #93, #94, #95, #96, #97, #99). Migration should **preserve those links** inside contributor docs so archaeology remains intact. --- ## Implementation notes for MR author - Prefer **one MR** with commits: (1) add migrated doc sections, (2) switch all links, (3) delete `skills/verify-yo-*`, (4) add new scripting skill + revise play skills. - If description length on GitLab is a concern, split migration tables into the MR description and keep this issue as overview — but **do not** skip the migration matrix in the MR itself.
PlasticDigits commented 2026-04-30 06:06:56 +00:00 (Migrated from gitlab.com)

mentioned in commit ca2aaffdd6

mentioned in commit ca2aaffdd6e6c953d8d1e03569db684505e0f65e
PlasticDigits commented 2026-04-30 06:06:56 +00:00 (Migrated from gitlab.com)

mentioned in commit e6218f7e51

mentioned in commit e6218f7e51481c802b93af742f7485a480546a5b
PlasticDigits commented 2026-04-30 06:07:17 +00:00 (Migrated from gitlab.com)

#100 landed on main (ca2aaff)

Implemented player-facing-only root skills/ (six play skills + skills/README.md): removed all verify-yo-* skills and moved procedural QA into docs/testing/manual-qa-checklists.md with TOC anchors (#manual-qa-issue-*). Added skills/script-with-timecurve-local/SKILL.md.

Invariant / docs: docs/testing/strategy.md, docs/testing/invariants-and-business-logic.md, .cursor/skills/yieldomega-guardrails/SKILL.md, docs/agents/metadata-and-skills.md, wallet-connection.md §#98 now cross-link manual QA (not repo play skills). #93 / #98 fee-sink and address links documented against VITE_EXPLORER_BASE_URL / explorerAddressUrl.

Verification: rg 'skills/verify-yo' . → empty repo-wide (*.md etc.).


@brouie please verify:

  • skills/ has exactly six play skills + README; no verify-yo-*.
  • manual-qa-checklists.md TOC includes migrated issues (#manual-qa-issue-*), including #98 canonical address / explorer checklist.
  • Play skills still read as participant-facing (no MR/edit pressure); skills/README.md points contributors to manual QA + guardrails.
  • Frontend still green: cd frontend && npm ci && npx vitest run (runner did this locally).
  • Spot-check explorer links still respect optional VITE_EXPLORER_BASE_URL on fee sinks + AddressInline (wallet-connection.md, issue #93/#98 rows in invariants).

Leaving issue open for your sign-off.

## #100 landed on `main` (ca2aaff) Implemented **player-facing-only** root `skills/` (six play skills + [`skills/README.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/skills/README.md)): removed all `verify-yo-*` skills and moved procedural QA into [`docs/testing/manual-qa-checklists.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/testing/manual-qa-checklists.md) with TOC anchors (`#manual-qa-issue-*`). Added [`skills/script-with-timecurve-local/SKILL.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/skills/script-with-timecurve-local/SKILL.md). **Invariant / docs:** [`docs/testing/strategy.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/testing/strategy.md), [`docs/testing/invariants-and-business-logic.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/testing/invariants-and-business-logic.md), [`.cursor/skills/yieldomega-guardrails/SKILL.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/.cursor/skills/yieldomega-guardrails/SKILL.md), [`docs/agents/metadata-and-skills.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/agents/metadata-and-skills.md), [`wallet-connection.md` §#98](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/frontend/wallet-connection.md) now cross-link **manual QA** (not repo play skills). **#93 / #98** fee-sink and address links documented against `VITE_EXPLORER_BASE_URL` / `explorerAddressUrl`. **Verification:** `rg 'skills/verify-yo' .` → **empty** repo-wide (`*.md` etc.). --- @brouie please verify: - [ ] `skills/` has exactly six play skills + README; **no** `verify-yo-*`. - [ ] [`manual-qa-checklists.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/testing/manual-qa-checklists.md) TOC includes migrated issues (`#manual-qa-issue-*`), including **#98** canonical address / explorer checklist. - [ ] Play skills still read as participant-facing (no MR/edit pressure); [`skills/README.md`](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/skills/README.md) points contributors to manual QA + guardrails. - [ ] Frontend still green: `cd frontend && npm ci && npx vitest run` (runner did this locally). - [ ] Spot-check explorer links still respect optional `VITE_EXPLORER_BASE_URL` on fee sinks + `AddressInline` (`wallet-connection.md`, issue #93/#98 rows in invariants). Leaving issue **open** for your sign-off.
Brouie commented 2026-05-01 12:27:58 +00:00 (Migrated from gitlab.com)

Verification on ca2aaff (folded into 243e2a0) — mostly PASS, one architectural question on item 1.

Items verified this session

  • manual-qa-checklists.md TOC includes migrated issues — 19 anchored entries (lines 9-27): all 16 originally migrated from verify-yo-* (#87, #88, #99, #64, #80, #81, #95, #78, #82, #79, #90, #92, #93, #96, #97, #71) plus the new ones (#98 canonical address at line 22, #103, #104). Each TOC link has matching <a id="manual-qa-issue-N"> anchor + ## Heading.
  • Play skills read as participant-facing — all 6 player-facing SKILL.md frontmatter description fields explicitly disclaim contributor scope. Phrases like "Use when helping a human participate, not when editing contracts", "not when editing Solidity", "not for patching the yieldomega repo", "Not financial advice". script-with-timecurve-local even has explicit "Audience: Players and agents helping players... not contributors" callout with redirect to Phase 18 + .cursor/skills/yieldomega-guardrails. README §3 + §24 properly split player vs contributor scopes.
  • grep -r 'skills/verify-yo' — zero hits across *.md, *.sh, *.ts, *.tsx, *.js, *.json. Clean.
  • Frontend green via vitest — npx vitest run from frontend/: 239 passing tests across 41 files in 5.06s. Includes the new mobileAlbumDockLayout.test.ts from this commit (1 test, related to #103).
  • Explorer links spot-check (VITE_EXPLORER_BASE_URL + AddressInline) — canonical architecture confirmed:
    • frontend/src/lib/explorer.ts line 6: single source of truth, reads VITE_EXPLORER_BASE_URL with fallback to https://mega.etherscan.io.
    • megaEtherscan.ts is thin alias delegating to explorerAddressUrl.
    • AddressInline.tsx line 7 imports explorerAddressUrl (no hardcoding); line 22 prop explorer?: boolean defaults to true with JSDoc citing the env; line 46 conditional const href = explorer ? explorerAddressUrl(raw) : undefined; only emits <a href> when href resolves.
    • MegaScannerAddressLink.tsx (fee-sink path, #93) imports from lib/explorer with cross-ref comment to #98.
    • Test coverage at explorer.test.ts + megaEtherscan.test.ts covers empty env (fallback), custom URL, trailing-slash normalization, bad-address rejection — all included in the 239/239 PASS.

Open question — item 1 acceptance criterion

Spec under §7 says "skills/ contains exactly six play-facing skills". Today ls skills/ shows 7 directories + README:

collect-leprechaun-sets         (play)
contributor-mobile-album-dock   (NEW — contributor-facing per its own SKILL.md)
play-rabbit-treasury            (play)
play-timecurve-doubloon         (play)
play-timecurve-warbow           (play)
script-with-timecurve-local     (play, new per §5)
why-yieldomega-participation-matters  (play)

skills/contributor-mobile-album-dock/SKILL.md line 6 self-declares: "Audience: Agents editing frontend/ layout or audio chrome (not play-skills participants)." That seems to contradict #100 goal #1 ("skills/ directory contains only player-facing skills") and the placement intent — .cursor/skills/ was the documented home for contributor guardrails (per #100's non-goals: "Removing or renaming contributor skills under .cursor/skills/").

README §13 keeps "Index (six player-facing skills)" sub-count and §24 "Contributor documentation (QA / harness)" lists contributor-mobile-album-dock/ as a contributor doc — so I see the threading-the-needle intent. But the spec's acceptance criterion was unambiguous about the directory contents.

Two paths:

  • (a) Intentional — Cursor skill loader / discoverability reason for keeping it under skills/. If so, .cursor/skills/ is now not the canonical home for all contributor guardrails — would help to amend #100's acceptance criterion (and possibly the README §3 framing) to reflect the dual-audience layout.
  • (b) Oversight — contributor-mobile-album-dock/ should move to .cursor/skills/contributor-mobile-album-dock/ with link updates from manual-qa-checklists.md#manual-qa-issue-103, invariants-and-business-logic.md#mobile-album-dock-layout-issue-103, and skills/README.md §24.

Which is it? Happy to do (b) repo work or leave (a) as-is once you confirm.

Also filed #105 separately for the unrelated --help cosmetic in #104's start-qa-local-full-stack.sh.

cc @PlasticDigits

Verification on `ca2aaff` (folded into `243e2a0`) — mostly PASS, one architectural question on item 1. ### Items verified this session - [x] **manual-qa-checklists.md TOC includes migrated issues** — 19 anchored entries (lines 9-27): all 16 originally migrated from `verify-yo-*` (#87, #88, #99, #64, #80, #81, #95, #78, #82, #79, #90, #92, #93, #96, #97, #71) plus the new ones (#98 canonical address at line 22, #103, #104). Each TOC link has matching `<a id="manual-qa-issue-N">` anchor + `## Heading`. - [x] **Play skills read as participant-facing** — all 6 player-facing `SKILL.md` frontmatter `description` fields explicitly disclaim contributor scope. Phrases like "Use when helping a human participate, **not when editing contracts**", "**not when editing Solidity**", "**not for patching the yieldomega repo**", "Not financial advice". `script-with-timecurve-local` even has explicit "Audience: Players and agents helping players... not contributors" callout with redirect to Phase 18 + `.cursor/skills/yieldomega-guardrails`. README §3 + §24 properly split player vs contributor scopes. - [x] **`grep -r 'skills/verify-yo'`** — zero hits across `*.md`, `*.sh`, `*.ts`, `*.tsx`, `*.js`, `*.json`. Clean. - [x] **Frontend green via vitest** — `npx vitest run` from `frontend/`: 239 passing tests across 41 files in 5.06s. Includes the new `mobileAlbumDockLayout.test.ts` from this commit (1 test, related to #103). - [x] **Explorer links spot-check (`VITE_EXPLORER_BASE_URL` + `AddressInline`)** — canonical architecture confirmed: - `frontend/src/lib/explorer.ts` line 6: single source of truth, reads `VITE_EXPLORER_BASE_URL` with fallback to `https://mega.etherscan.io`. - `megaEtherscan.ts` is thin alias delegating to `explorerAddressUrl`. - `AddressInline.tsx` line 7 imports `explorerAddressUrl` (no hardcoding); line 22 prop `explorer?: boolean` defaults to true with JSDoc citing the env; line 46 conditional `const href = explorer ? explorerAddressUrl(raw) : undefined`; only emits `<a href>` when href resolves. - `MegaScannerAddressLink.tsx` (fee-sink path, #93) imports from `lib/explorer` with cross-ref comment to #98. - Test coverage at `explorer.test.ts` + `megaEtherscan.test.ts` covers empty env (fallback), custom URL, trailing-slash normalization, bad-address rejection — all included in the 239/239 PASS. ### Open question — item 1 acceptance criterion Spec under §7 says **"skills/ contains exactly six play-facing skills"**. Today `ls skills/` shows **7 directories + README**: ``` collect-leprechaun-sets (play) contributor-mobile-album-dock (NEW — contributor-facing per its own SKILL.md) play-rabbit-treasury (play) play-timecurve-doubloon (play) play-timecurve-warbow (play) script-with-timecurve-local (play, new per §5) why-yieldomega-participation-matters (play) ``` `skills/contributor-mobile-album-dock/SKILL.md` line 6 self-declares: **"Audience: Agents editing `frontend/` layout or audio chrome (not play-skills participants)."** That seems to contradict #100 goal #1 ("skills/ directory contains only player-facing skills") and the placement intent — `.cursor/skills/` was the documented home for contributor guardrails (per #100's non-goals: "Removing or renaming contributor skills under `.cursor/skills/`"). README §13 keeps "Index (six player-facing skills)" sub-count and §24 "Contributor documentation (QA / harness)" lists `contributor-mobile-album-dock/` as a contributor doc — so I see the threading-the-needle intent. But the spec's acceptance criterion was unambiguous about the directory contents. Two paths: - **(a)** Intentional — Cursor skill loader / discoverability reason for keeping it under `skills/`. If so, `.cursor/skills/` is now not the canonical home for all contributor guardrails — would help to amend #100's acceptance criterion (and possibly the README §3 framing) to reflect the dual-audience layout. - **(b)** Oversight — `contributor-mobile-album-dock/` should move to `.cursor/skills/contributor-mobile-album-dock/` with link updates from `manual-qa-checklists.md#manual-qa-issue-103`, `invariants-and-business-logic.md#mobile-album-dock-layout-issue-103`, and `skills/README.md` §24. Which is it? Happy to do (b) repo work or leave (a) as-is once you confirm. Also filed #105 separately for the unrelated `--help` cosmetic in #104's `start-qa-local-full-stack.sh`. cc @PlasticDigits
Brouie commented 2026-05-01 15:28:04 +00:00 (Migrated from gitlab.com)

mentioned in issue #71

mentioned in issue #71
PlasticDigits commented 2026-05-02 04:37:07 +00:00 (Migrated from gitlab.com)

Yes remove contributor-mobile-album-doc, info about doc should be in docs not in skills

Yes remove contributor-mobile-album-doc, info about doc should be in docs not in skills
PlasticDigits commented 2026-05-02 04:37:08 +00:00 (Migrated from gitlab.com)

mentioned in commit 06a94ad765

mentioned in commit 06a94ad765cc4f92fd017c7e7570960ab7e0632b
PlasticDigits commented 2026-05-02 04:41:38 +00:00 (Migrated from gitlab.com)

mentioned in commit 7ec88284a2

mentioned in commit 7ec88284a22365c4637f357e1e2a2ec4690f78fa
PlasticDigits commented 2026-05-02 04:41:38 +00:00 (Migrated from gitlab.com)

mentioned in commit 33d8d07331

mentioned in commit 33d8d07331956bec569b92e18ca13ad1ea663625
PlasticDigits commented 2026-05-02 04:41:58 +00:00 (Migrated from gitlab.com)

GitLab #100 — contributor mobile album doc routing (closed by maintainer request)

Done: Removed the redundant second checklist anchor for INV-AUDIO-103 / contributor-mobile-album-dock: maintainer doc maps now treat manual QA #103 as the single procedural checklist (same pattern as BGM #71 / #100).

Commits on main: merge fix/gl100-mobile-album-doc-note → 7ec8828 (parent 3806356).

Doc changes

  • docs/testing/manual-qa-checklists.md — #103 Doc map no longer links skills/contributor-mobile-album-dock/SKILL.md as a peer checklist.
  • skills/README.md — #103 cites #manual-qa-issue-103 (not the contributor skill).
  • .cursor/skills/yieldomega-guardrails/SKILL.md — removed duplicate crosslink after INV-AUDIO-103 blurb; manual QA links unchanged.
  • docs/agents/metadata-and-skills.md — new Issue #103 bullet: canonical checklist vs optional implementation deep-dive (GitLab #100).
  • skills/contributor-mobile-album-dock/SKILL.md — audience header states manual QA is the verification anchor; file remains for implementation tokens.

Invariant (documentation)

INV-DOC-100-103: Procedural verification for mobile album dock vs nav (#103) is anchored at docs/testing/manual-qa-checklists.md#manual-qa-issue-103 only. skills/contributor-mobile-album-dock/SKILL.md is optional implementation reference, not a parallel maintainer checklist.

Verification checklist for @brouie

  • Open docs/testing/manual-qa-checklists.md → Mobile album dock vs nav (#103) — Doc map lists only invariants + sound-effects §8 (no third “contributor skill” bullet).
  • skills/README.md contributor paragraph links #103 to #manual-qa-issue-103.
  • docs/agents/metadata-and-skills.md contains the Issue #103 / mobile album dock bullet under contributor manual QA.
  • npm run test -- --run src/audio/mobileAlbumDockLayout.test.ts in frontend/ still passes (no code change; sanity).
  • Grep repo: no maintainer Doc map reintroduces contributor-mobile-album-dock as an equal anchor to manual QA #103.

/cc @brouie please confirm.

## GitLab #100 — contributor mobile album doc routing (closed by maintainer request) **Done:** Removed the redundant **second checklist anchor** for INV-AUDIO-103 / `contributor-mobile-album-dock`: maintainer doc maps now treat **[manual QA #103](https://gitlab.com/PlasticDigits/yieldomega/-/blob/main/docs/testing/manual-qa-checklists.md#manual-qa-issue-103)** as the single procedural checklist (same pattern as BGM #71 / #100). **Commits on `main`:** merge `fix/gl100-mobile-album-doc-note` → `7ec8828` (parent `3806356`). ### Doc changes - `docs/testing/manual-qa-checklists.md` — #103 **Doc map** no longer links `skills/contributor-mobile-album-dock/SKILL.md` as a peer checklist. - `skills/README.md` — #103 cites `#manual-qa-issue-103` (not the contributor skill). - `.cursor/skills/yieldomega-guardrails/SKILL.md` — removed duplicate crosslink after INV-AUDIO-103 blurb; manual QA links unchanged. - `docs/agents/metadata-and-skills.md` — new **Issue #103** bullet: canonical checklist vs optional implementation deep-dive ([GitLab #100](https://gitlab.com/PlasticDigits/yieldomega/-/issues/100)). - `skills/contributor-mobile-album-dock/SKILL.md` — audience header states manual QA is the verification anchor; file remains for implementation tokens. ### Invariant (documentation) **INV-DOC-100-103:** Procedural verification for mobile album dock vs nav (**#103**) is anchored at `docs/testing/manual-qa-checklists.md#manual-qa-issue-103` only. `skills/contributor-mobile-album-dock/SKILL.md` is **optional** implementation reference, not a parallel maintainer checklist. ### Verification checklist for @brouie - [ ] Open `docs/testing/manual-qa-checklists.md` → **Mobile album dock vs nav (#103)** — **Doc map** lists only invariants + sound-effects §8 (no third “contributor skill” bullet). - [ ] `skills/README.md` contributor paragraph links #103 to `#manual-qa-issue-103`. - [ ] `docs/agents/metadata-and-skills.md` contains the **Issue #103 / mobile album dock** bullet under contributor manual QA. - [ ] `npm run test -- --run src/audio/mobileAlbumDockLayout.test.ts` in `frontend/` still passes (no code change; sanity). - [ ] Grep repo: no maintainer **Doc map** reintroduces `contributor-mobile-album-dock` as an equal anchor to manual QA #103. /cc @brouie please confirm.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-05-02 04:42:05 +00:00
PlasticDigits commented 2026-05-02 04:42:24 +00:00 (Migrated from gitlab.com)

mentioned in commit 5dff49cb55

mentioned in commit 5dff49cb552891840adae01e65aa6234d9278c72
PlasticDigits commented 2026-05-02 04:42:27 +00:00 (Migrated from gitlab.com)

Follow-up: INV-AUDIO-103 doc-routing sentence added in-repo under docs/testing/invariants-and-business-logic.md (5dff49c) so the #100 / #103 checklist invariant is not only in this thread.

Follow-up: **INV-AUDIO-103** doc-routing sentence added in-repo under `docs/testing/invariants-and-business-logic.md` ([`5dff49c`](https://gitlab.com/PlasticDigits/yieldomega/-/commit/5dff49c)) so the #100 / #103 checklist invariant is not only in this thread.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega#100
No description provided.