[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71SGD1DV15B9Z2S5V3M8YPH":3,"skill-same:01M71SGD1DV15B9Z2S5V3M8YPH":45},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":26,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M71SGD1DV15B9Z2S5V3M8YPH","using-beryl",null,"Praneeth-Suresh\u002FBeryl","Praneeth-Suresh","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F86470588?v=4","01M71SF2BCZ4JMKKYZR66WNHAF","Praneeth Suresh","01M71SF2C5JMS7B9676HSA2SG6",11,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fusing-beryl\u002FSKILL.md",[],[18],"using beryl","2026-11-10 13:02:02",false,"# Using Beryl\n\n## Purpose\n\nSet up Beryl in a target repository, then use its repository-owned workflow and\ndeterministic checks for subsequent work.\n\n## Remote Skill Entry Point\n\nUse this skill from the target repository. Do not require the user to clone\nBeryl first.\n\nSkill URL shape (substitute the user-approved immutable ref):\n\n```text\nhttps:\u002F\u002Fraw.githubusercontent.com\u002FPraneeth-Suresh\u002FBeryl\u002F\u003Ctrusted-ref>\u002F.beryl\u002Fagent\u002Fskills\u002Fusing-beryl\u002FSKILL.md\n```\n\nObtain Beryl's versioned `beryl-bootstrap.sh` through the approved,\nindependently trusted bootstrap channel and run `--release latest`. It verifies\nsigned metadata and the selected archive before executing the release\ninstaller. Record the reported release tag, full SHA, signing key ID, and\narchive digest. The pinned SHA-and-digest flow remains a recovery fallback.\n\nFor the explicit pinned recovery fallback, obtain the SHA\u002Fdigest pair from the\n[GitHub Releases checksum asset](https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Freleases).\n\n## Setup\n\n1. Confirm the current working directory is the target repository. Never clone\n   Beryl into or beside the target unless the user explicitly asks for a local\n   Beryl checkout workflow.\n2. Inventory existing repository state before install:\n   - application code, tests, package\u002Fbuild files, and docs\n   - existing `.beryl\u002F`\n   - existing agent instruction files such as `AGENTS.md`, `CLAUDE.md`,\n     `.codex\u002FAGENTS.md`, `.cursor\u002Frules\u002Fagent-rules.md`,\n     `.github\u002Fcopilot-instructions.md`, `.cursorrules`, `.windsurfrules`, and\n     similar tool-specific files\n   - existing workflow files under `.github\u002Fworkflows\u002F`\n3. Install Beryl. Prefer the approved versioned bootstrap for automatic release\n   selection. If the user has provided `beryl-bootstrap.sh` or you can download\n   it from the [GitHub Releases page](https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Freleases),\n   use it directly:\n\n   ```bash\n   sh beryl-bootstrap.sh --release latest --interactive --root-conflict skip\n   ```\n\n   The bootstrap validates signed metadata and the archive, then runs the\n   verified selected installer. Do not accept a raw `latest` URL alone as its\n   trust root. If the bootstrap is unavailable, ask the user to provide it or\n   fall back to the pinned manual procedure below.\n\n   **Pinned manual fallback** (when a bootstrap is unavailable or audit policy\n   requires an explicit SHA\u002Fdigest pair):\n\n   ```bash\n   BERYL_REF='0123456789abcdef0123456789abcdef01234567' # full 40-character SHA\n   BERYL_ARCHIVE_SHA256='digest-from-trusted-release-channel'\n   curl --fail --show-error --location --proto '=https' --proto-redir '=https' --tlsv1.2 \\\n     \"https:\u002F\u002Fraw.githubusercontent.com\u002FPraneeth-Suresh\u002FBeryl\u002F$BERYL_REF\u002Finstall.sh\" \\\n     -o beryl-install.sh\n   less beryl-install.sh\n   sh beryl-install.sh --ref \"$BERYL_REF\" \\\n     --expected-sha256 \"$BERYL_ARCHIVE_SHA256\" \\\n     --interactive --root-conflict skip\n   ```\n\n   On Windows, use PowerShell only to download the file, with a ref-variable\n   URL and redirects disabled, then run it from Git Bash or WSL:\n\n   ```powershell\n   $env:BERYL_REF = \"0123456789abcdef0123456789abcdef01234567\"\n   $env:BERYL_ARCHIVE_SHA256 = \"digest-from-trusted-release-channel\"\n   Invoke-WebRequest `\n     -Uri \"https:\u002F\u002Fraw.githubusercontent.com\u002FPraneeth-Suresh\u002FBeryl\u002F$env:BERYL_REF\u002Finstall.sh\" `\n     -MaximumRedirection 0 `\n     -OutFile \"beryl-install.sh\"\n   ```\n\n   Use `--bootstrap-agent` only after a successful locked lifecycle operation,\n   when the user wants a supported coding agent to fill project-specific Beryl\n   context. It is a standalone action and external-agent edits are outside the\n   file transaction.\n4. Consolidate existing agent guidance into Beryl:\n   - Treat `.beryl\u002Fagent\u002F` as the canonical home for durable agent rules,\n     project brief, architecture, testing policy, vocabulary, and workflow\n     routing.\n   - Move or summarize durable guidance from pre-existing agent files into the\n     smallest matching `.beryl\u002Fagent\u002F` canonical file. Preserve project-specific\n     meaning; do not paste stale or tool-specific boilerplate wholesale.\n   - Keep application code, tests, docs, package files, and unrelated workflows\n     outside Beryl.\n   - Do not delete or overwrite existing non-Beryl files without explicit user\n     approval. If a root agent file conflicts, preserve its content first, then\n     ask before replacing it with a generated Beryl shim.\n5. Regenerate Beryl-managed agent shims after consolidation:\n\n   ```bash\n   BERYL_SHIM_CONFLICT=skip .\u002F.beryl\u002Fagent\u002Fscripts\u002Fsync-agent-env.sh\n   ```\n\n   If existing root instruction files intentionally need replacement, get\n   explicit user approval first, then rerun:\n\n   ```bash\n   BERYL_SHIM_CONFLICT=overwrite .\u002F.beryl\u002Fagent\u002Fscripts\u002Fsync-agent-env.sh\n   ```\n6. Configure tests only from discovered project commands. Do not invent host\n   project test commands or configuration.\n7. Run checks from the target repository:\n\n   ```bash\n   .\u002F.beryl\u002Fscripts\u002Fcheck.sh\n   ```\n\n   Report missing prerequisites or unavailable checks instead of claiming that\n   the target is verified.\n\n## Updating Beryl\n\nUse the downloaded `install.sh` to update an existing target only after\nconfirming that `TARGET\u002F.beryl\u002Flock.json` exists. The default update retains\nthe lockfile's immutable `sourceRef` and `requestedComponents`; pass `--ref`,\n`--profile`, or `--components` only when the user explicitly wants to replace\nthat selection.\n\n```bash\nBERYL_REF='0123456789abcdef0123456789abcdef01234567'\nBERYL_ARCHIVE_SHA256='digest-from-trusted-release-channel'\nsh beryl-install.sh --ref \"$BERYL_REF\" --expected-sha256 \"$BERYL_ARCHIVE_SHA256\" \\\n  --update --target \u002Fpath\u002Fto\u002Ftarget\n```\n\nFor a remote update, require a full 40-character commit SHA and matching\n`--expected-sha256` from a trusted release channel whenever the source is\nreplaced. With neither option, the lockfile reuses `sourceRef` and\n`expectedSourceSha256`; reject a missing or mismatched reused digest rather\nthan proceeding.\n\nThe updater stages and validates the selected release, then updates only its\nfile-level managed surface. Its managed ledger is state, not deletion authority:\nnormal updates preserve deselected or ambiguous files and remove them from\nBeryl ownership. It preserves target-owned canonical agent context, custom\nconfiguration, driver tasks and state, and user-added files. A\nsuccessful update retains replaced files under `.beryl\u002F.updates\u002F\u003Ctimestamp>\u002F`.\nIf it fails, report the structured phase\u002Fcomponent\u002Fpath\u002Freason\u002Frollback output\nand do not claim the update succeeded.\n\nNormal updates preserve deselected or ambiguous paths and remove them from\nBeryl ownership. The managed ledger records lifecycle state; it is never\ncleanup authorization.\n\n## Setup, Recovery, And Conflicts\n\nUse a local Beryl checkout only through `--source-dir`; it must be a Git\ncheckout because the lifecycle engine stages tracked release files only.\n`.beryl\u002Fscripts\u002Fsetup-project.sh` is a local frontend that delegates one\ntransaction. It supports interactive setup and `--non-interactive` with a\ntarget directory and deterministic defaults. Pass `--root-conflict\nfail|skip|overwrite` for root contracts. Hook activation is opt-in with\n`--enable-githooks`; if Git already has a hooks path, require the user's choice\nof `--hook-conflict fail|preserve|replace`.\n\nReport retained update backup ids. Restore requires explicit historical\n`--profile` or `--components`, and may require a Git checkout proving the\ncurrently installed release through `--current-source-dir`. Before it removes\ncurrent-only paths, require explicit `--current-profile` or\n`--current-components`. A remote restore validates the backed-up full SHA and\nmatching trusted archive digest before fetch:\n\n```bash\nBERYL_REF='0123456789abcdef0123456789abcdef01234567'\nBERYL_ARCHIVE_SHA256='digest-from-trusted-release-channel'\nsh beryl-install.sh --restore \u003Cbackup-id> --ref \"$BERYL_REF\" \\\n  --expected-sha256 \"$BERYL_ARCHIVE_SHA256\" --target \u002Fpath\u002Fto\u002Ftarget \\\n  --profile standard --current-profile full \\\n  --current-source-dir \u002Fpath\u002Fto\u002Fcurrent-beryl-git-checkout\n```\n\n`--uninstall` requires explicit `--profile` or `--components`, then removes\nonly unchanged, digest-proven selected managed paths and restores Beryl-owned\nhook configuration. With no profile\u002Fcomponents, `--adopt-existing`\ninfers only minimal, standard, or full from distinctive installed files; it\nrefuses ambiguous or partial surfaces. It records only an identical unlocked\nsurface from a Beryl Git checkout and never removes unknown content.\n\n## Working With Beryl\n\n1. Read `.beryl\u002Fagent\u002Ftask-routing.md` and load the one matching workflow\n   skill before editing.\n2. For feature work, present a plan and wait for approval before implementing.\n3. Follow the target repository's canonical agent rules and testing policy.\n4. Run the narrow relevant check, then `.\u002F.beryl\u002Fscripts\u002Fcheck.sh`, and report\n   the changed files and results for review.\n\nFor Beryl's source checkout, use `.\u002F.beryl\u002Fscripts\u002Fcheck.sh --development`.\nInstalled repositories use the default command, which checks lock-aware\nreadiness. Report either `ready` or `ready-with-preserved-external-contracts`.\nThe latter names warnings and states `Beryl does not enforce` the preserved\nroot\u002Fhook contract; never present it as Beryl-managed enforcement.\n\n## References\n\n- Remote README shape:\n  `https:\u002F\u002Fraw.githubusercontent.com\u002FPraneeth-Suresh\u002FBeryl\u002F\u003Ctrusted-ref>\u002FREADME.md`\n- Remote scripts reference shape:\n  `https:\u002F\u002Fraw.githubusercontent.com\u002FPraneeth-Suresh\u002FBeryl\u002F\u003Ctrusted-ref>\u002F.beryl\u002Fscripts\u002FREADME.md`\n- Installed agent control plane: `.beryl\u002Fagent\u002FREADME.md`\n",{},"main","3a5bd7e327cbdad81a70b624ec3fc6e43ec91f12",".beryl\u002Fagent\u002Fskills\u002Fusing-beryl",0,"https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh","Just built it.","2026-11-09 18:59:34",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add Praneeth-Suresh\u002FBeryl --skill using-beryl",{"tool":37,"command":38},"bunx","bunx skills add Praneeth-Suresh\u002FBeryl --skill using-beryl",{"tool":40,"command":41},"pnpm","pnpm dlx skills add Praneeth-Suresh\u002FBeryl --skill using-beryl","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fusing-beryl\u002FSKILL.md",true,[],[46,71,104,129,144,168],{"skillNo":47,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":50,"licenseFileUrl":51,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":19},"01M71SGEFHAT82F5TQH73XY6H8","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","MIT","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fverification-before-completion\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],"verification","verification before completion","commands","evidence","about","work","claims","output","committing","when","assertions","use","claim","prs","complete","running",{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":85,"publishedAt":19},"01M71SGAJ7D211GQR4703TTZCW","understand-codebase","Teach a developer how a repository, subsystem, execution path, migration, diff, commit, branch, or pull request works. Use when the user asks to understand, explain, map, walk through, explore, or quiz themselves on code, or asks for an interactive HTML understanding artifact.","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Funderstand-codebase\u002FSKILL.md",[77,82],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":83,"categoryName":84,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000039","教师与教育",[86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,64,66,103],"understand","codebase","understand codebase","execution","explore","for","diff","branch","pull","quiz","pull request","how","artifact","explain","interactive","commit","code","map",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":50,"licenseFileUrl":108,"sourceHtmlUrl":109,"categories":110,"keywords":119,"publishedAt":19},"01M71SG8H7CZGRND4C2BS49RV2","test-driven-development","Use when implementing any feature or bugfix, before writing implementation code","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Ftest-driven-development\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[111,116],{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":117,"categoryName":118,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000018","写作与文案",[120,121,122,123,102,124,125,66,64,126,127,128],"development","test driven development","test","driven","implementing","writing","implementation","bugfix","feature",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":50,"licenseFileUrl":133,"sourceHtmlUrl":134,"categories":135,"keywords":137,"publishedAt":19},"01M71SG4N855A3ASYXWFX45DH5","systematic-debugging","Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fsystematic-debugging\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fsystematic-debugging\u002FSKILL.md",[136],{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},[138,139,140,141,142,122,64,66,143],"systematic debugging","debugging","systematic","bug","behavior","fixes",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":19},"01M71SG18JMNV8ED6XQ97Z48X0","simplifying-code","Use when code in a specific module or area is hard to understand or change, when the user asks to simplify, refactor, clean up, or improve the design or architecture of some code, or when a maintenance program hands over a refactor slice. Finds unmanaged complexity from evidence and removes it with small, behavior-preserving changes.","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Fsimplifying-code\u002FSKILL.md",[150],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},[152,102,58,153,154,155,156,157,158,159,160,161,162,64,66,163,164,165,166,167],"simplifying code","complexity","behavior-preserving","slice","architecture","maintenance","changes","change","with","program","simplify","module","design","improve","clean","up",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":175,"publishedAt":19},"01M71SFYCTTCDRHPPVXBPPB7DR","refreshing-context","Use when the user asks to refresh, review, audit, or clean up the agent context files, periodically (for example monthly), or after a large change to the repository such as a restructure, migration, or major feature. Checks the context layer against the code, quizzes the developer to confirm what is still true, and removes or fixes redundant and misleading context with approval.","https:\u002F\u002Fgithub.com\u002FPraneeth-Suresh\u002FBeryl\u002Fblob\u002Fmain\u002F.beryl\u002Fagent\u002Fskills\u002Frefreshing-context\u002FSKILL.md",[174],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},[176,177,64,178,179,159,180,160,181,102,66,182,183,166,167,184,91,143,128,185],"context","refreshing context","repository","audit","refresh","review","files","true","example","as"]