Doc Coauthoring
aws-samples/sample-strands-agent-with-agentcore
Guide users through a structured workflow for co-authoring documentation.
Update hardcoded Conway governance proposal mappings in hacks.rs by querying DBSync
$ npx skills add txpipe/dolos --skill update-proposals -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install txpipe/dolos update-proposals --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/txpipe/dolos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/update-proposals .claude/skills/update-proposals && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "update-proposals" agent skill from https://github.com/txpipe/dolos/tree/main/skills/update-proposals into .claude/skills/update-proposals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-proposals", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/txpipe/dolos/tree/main/skills/update-proposalsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add txpipe/dolos --skill update-proposals -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install txpipe/dolos update-proposals --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/txpipe/dolos.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/update-proposals .agents/skills/update-proposals && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "update-proposals" agent skill from https://github.com/txpipe/dolos/tree/main/skills/update-proposals into .agents/skills/update-proposals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-proposals", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add txpipe/dolos --skill update-proposals -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install txpipe/dolos update-proposals --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/txpipe/dolos.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/update-proposals .cursor/skills/update-proposals && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "update-proposals" agent skill from https://github.com/txpipe/dolos/tree/main/skills/update-proposals into .cursor/skills/update-proposals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-proposals", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/txpipe/dolos.git --path skills/update-proposals--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add txpipe/dolos --skill update-proposals -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install txpipe/dolos update-proposals --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/txpipe/dolos.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/update-proposals .gemini/skills/update-proposals && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "update-proposals" agent skill from https://github.com/txpipe/dolos/tree/main/skills/update-proposals into .gemini/skills/update-proposals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-proposals", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install txpipe/dolos update-proposalsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add txpipe/dolos --skill update-proposals -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/txpipe/dolos.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/update-proposals .github/skills/update-proposals && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "update-proposals" agent skill from https://github.com/txpipe/dolos/tree/main/skills/update-proposals into .github/skills/update-proposals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-proposals", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add txpipe/dolos --skill update-proposals -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install txpipe/dolos update-proposals --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/txpipe/dolos.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/update-proposals .opencode/skills/update-proposals && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "update-proposals" agent skill from https://github.com/txpipe/dolos/tree/main/skills/update-proposals into .opencode/skills/update-proposals/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-proposals", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
update-proposalsUpdate hardcoded Conway governance proposal mappings in hacks.rs by querying DBSync
Update Proposals is an agent skill from txpipe/dolos. Update hardcoded Conway governance proposal mappings in hacks.rs by querying DBSync
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Sales & Support, covering Proposals and quotes. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 48a5f87. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Update Proposals loads about 1.6k tokens when it runs. Until then it costs about 25 tokens; SKILL.md has 583 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from txpipe/dolos at commit 48a5f87, republished under its Apache-2.0 licence (© txpipe). 583 words, ~1,612 tokens.
.claude/skills/update-proposals/SKILL.md (or your agent's skills folder).Dolos doesn't implement DRep governance voting, so Conway proposal outcomes are hardcoded in crates/cardano/src/hacks.rs. When testing advances to new epochs, missing proposals cause wrong deposit refund timing and missed treasury withdrawals, leading to pot mismatches.
This skill walks through querying DBSync and updating hacks.rs accordingly.
Read xtask.toml at the repo root. The [dbsync] section has connection URLs per network:
[dbsync]
mainnet_url = "postgresql://..."
preprod_url = "postgresql://..."
preview_url = "postgresql://..."Use the appropriate URL for the target network.
Run this against DBSync to get the full proposal lifecycle:
SELECT
encode(tx.hash, 'hex') || '#' || gap.index::text AS proposal_id,
gap.type::text AS proposal_type,
b.epoch_no AS submitted_epoch,
gap.ratified_epoch,
gap.enacted_epoch,
gap.dropped_epoch,
gap.expired_epoch
FROM gov_action_proposal gap
JOIN tx ON tx.id = gap.tx_id
JOIN block b ON b.id = tx.block_id
ORDER BY b.epoch_no, gap.index;Key columns:
proposal_id: The txhash#index format used in hacks.rs match armstype: TreasuryWithdrawals, NewConstitution, NewCommittee, ParameterChange, HardForkInitiation, InfoActionratified_epoch: Non-null if the proposal was ratified (enactment follows at the next epoch). Use this when enacted_epoch is still NULL — the proposal is ratified but enactment hasn't happened yet at the current DBSync tip.enacted_epoch: Non-null if the proposal was enacted on-chaindropped_epoch: Non-null if the proposal was dropped (superseded by another)expired_epoch: Non-null if the proposal expired without ratificationSELECT
encode(tx.hash, 'hex') || '#' || gap.index::text AS proposal_id,
gap.type::text AS proposal_type,
b.epoch_no AS submitted_epoch,
gap.ratified_epoch,
gap.enacted_epoch,
COALESCE(gap.ratified_epoch, gap.enacted_epoch - 1)::text AS expected_ratified
FROM gov_action_proposal gap
JOIN tx ON tx.id = gap.tx_id
JOIN block b ON b.id = tx.block_id
WHERE gap.enacted_epoch IS NOT NULL OR gap.ratified_epoch IS NOT NULL
ORDER BY COALESCE(gap.enacted_epoch, gap.ratified_epoch), gap.index;The formula is: Ratified(enacted_epoch - 1), or equivalently Ratified(ratified_epoch). Ratification happens one epoch before enactment in Conway governance. Include proposals where ratified_epoch is non-null but enacted_epoch is still NULL — these are ratified but awaiting enactment at the current tip, and still need Ratified entries in hacks.rs.
Read crates/cardano/src/hacks.rs and find the network's outcome() function (e.g., pub mod mainnet). Compare every enacted proposal from Step 3 against existing match arms.
Check for:
Unknown, never get enacted, and eventually expire -- causing wrong deposit refund timing and missed treasury withdrawals.Ratified(N) doesn't match ratified_epoch (or enacted_epoch - 1 if ratified_epoch is NULL).ratified_epoch, enacted_epoch, dropped_epoch, or expired_epoch yet. These correctly return Unknown and will need entries added later when resolved.Check dropped/expired proposals:
SELECT
encode(tx.hash, 'hex') || '#' || gap.index::text AS proposal_id,
gap.type::text AS proposal_type,
b.epoch_no AS submitted_epoch,
gap.dropped_epoch,
gap.expired_epoch
FROM gov_action_proposal gap
JOIN tx ON tx.id = gap.tx_id
JOIN block b ON b.id = tx.block_id
WHERE gap.enacted_epoch IS NULL
AND (gap.dropped_epoch IS NOT NULL OR gap.expired_epoch IS NOT NULL)
ORDER BY b.epoch_no, gap.index;Rules:
dropped_epoch = expired_epoch + 1 (natural expiry), no entry needed. The Unknown outcome lets them expire via max_epoch, matching DBSync timing.Canceled(epoch) if the timing differs from natural expiry.InfoAction proposals never need entries (they have no on-chain effect).Insert new match arms in the appropriate network module, before the _ => match protocol fallback. Group entries logically (by epoch or proposal type) and add a brief comment describing each:
// Treasury Withdrawal for Catalyst Fund 14
"03f671791fd97011f30e4d6b76c9a91f4f6bcfb60ee37e5399b9545bb3f2757a#0" => {
Ratified(597)
}ProposalOutcome variants:
Ratified(epoch) -- proposal was ratified at this epoch, enacted at epoch+1Canceled(epoch) -- proposal was canceled/superseded at this epochRatifiedCurrentEpoch -- pre-Conway (protocol 0-8) proposals that ratify in the epoch they're submittedUnknown -- default for unresolved proposals; they expire naturally via max_epochcargo check -p dolos-cardanoThen run epoch tests that cover the affected epoch range:
cargo test --test epoch_pots --release -- --nocapture| Column | Type | Description |
|---|---|---|
id | bigint | Primary key |
tx_id | bigint | FK to tx -- the transaction containing the proposal |
index | int | Index of the proposal within the transaction |
type | text | Proposal type enum |
ratified_epoch | int | Epoch when ratified (null if not ratified). May be set before enacted_epoch if enactment hasn't happened yet at the current DBSync tip. |
enacted_epoch | int | Epoch when enacted (null if not enacted) |
dropped_epoch | int | Epoch when dropped/superseded (null if not dropped) |
expired_epoch | int | Epoch when expired (null if not expired) |
Used in proposals::outcome() dispatch:
76482407312© txpipe, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/update-proposals of txpipe/dolos.
Open the folder on GitHubat commit 48a5f87
Update Proposals next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Update Proposals this skilltxpipe/dolos | 138 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Doc Coauthoringaws-samples/sample-strands-agent-with-agentcore | 194 | 39 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Audit Onboarding Proposalhoangnb24/repository-harness | 1.2k | — | ~4k | Automated safety check: Pass | MIT | |
| No Negative EchoLB623/no-negative-echo | 893 | — | ~965 | Automated safety check: Pass | MIT | |
| GEO Service Proposal Generatorzubair-trabzada/geo-seo-claude | 11k | — | ~3k | Automated safety check: Notes | MIT | |
| Architectural ProposalsFritzAndFriends/SharpSite | 145 | 2 repos | ~1.6k | Automated safety check: Pass | MIT |
aws-samples/sample-strands-agent-with-agentcore
Guide users through a structured workflow for co-authoring documentation.
hoangnb24/repository-harness
Use only when the user explicitly invokes $audit-onboarding-proposal.
LB623/no-negative-echo
Prevent 此地无银三百两式 residue: finalize artifacts without echoing rejected session-only alternatives into labels, metadata, commits, PRs, or handoffs.
zubair-trabzada/geo-seo-claude
Builds a client-ready AI-search-optimization proposal from an existing GEO audit, with pricing tiers, an ROI estimate and a markdown document ready to send.
FritzAndFriends/SharpSite
How to write comprehensive architectural proposals that drive alignment before code is written
techwolf-ai/ai-first-toolkit
Mine the user's Claude Code + Cowork session history into a structured task profile, what they do with AI, how often, how successfully where friction lives, then propose atomic skills that would…
txpipe/dolos
Systematic workflow for debugging Cardano ledger epoch pots mismatches in Dolos.
txpipe/dolos
Reconcile the user-facing documentation under docs/content/ with the current source-of-truth in the codebase.
txpipe/dolos
Set up a new epochpots integration test with ground truth fixtures from DBSync
txpipe/dolos
Add a missing pointer address mapping to hacks.rs by looking up the stake credential in DBSync
txpipe/dolos
Architecture of the Dolos processing pipeline — WorkUnit lifecycle, executor modes, CardanoWorkUnit variants, WorkBuffer state machine, and sequencing.
txpipe/dolos
Reference of non-obvious Cardano ledger behaviors that have caused bugs in Dolos.
Categories
Update hardcoded Conway governance proposal mappings in hacks.rs by querying DBSync. Update Proposals is an agent skill from txpipe/dolos.
Update Proposals fits situations like: tasks that involve Proposals and quotes.
Run `npx skills add txpipe/dolos --skill update-proposals -a claude-code`. Or copy the skill folder (skills/update-proposals in txpipe/dolos) into .claude/skills/update-proposals in your project. Claude Code loads it when a task matches its description.
Run `npx skills add txpipe/dolos --skill update-proposals -a codex`. Or copy the skill folder (skills/update-proposals in txpipe/dolos) into .agents/skills/update-proposals in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add txpipe/dolos --skill update-proposals -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-proposals, .gemini/skills/update-proposals, .github/skills/update-proposals and .opencode/skills/update-proposals in your project.
Going by SKILL.md and its folder, Update Proposals needs the command-line tools its instructions call (cargo).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Update Proposals is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Update Proposals: Doc Coauthoring (aws-samples/sample-strands-agent-with-agentcore, 194 stars), Audit Onboarding Proposal (hoangnb24/repository-harness, 1.2k stars), No Negative Echo (LB623/no-negative-echo, 893 stars) and GEO Service Proposal Generator (zubair-trabzada/geo-seo-claude, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
txpipe (a GitHub organization) maintains it in txpipe/dolos, which has 138 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 6, 2026.
Source: txpipe/dolos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.