Skip to content

chore: workflow skills + composite-policy spec rewrite - #203

Open
rayyan224 wants to merge 18 commits into
mainfrom
rfc/wrokflow
Open

chore: workflow skills + composite-policy spec rewrite#203
rayyan224 wants to merge 18 commits into
mainfrom
rfc/wrokflow

Conversation

@rayyan224

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a changelog-grill skill and a technical-document skill for round-tripping changelog entries through a point-form template.
  • Replaces the shipped 02_Cobalt_PolicyRegistry_composite_policy.md, 02_Cobalt_B20Asset_multiplier.md, and 02_Cobalt_B20_seize.md entries with a single point-form draft, changelog/COMPOSITE_POLICY.md, plus the reusable changelog/TEMPLATE_POINT_FORM.md.
  • Adds back a full written spec at changelog/02_Cobalt_PolicyRegistry_composite_policy.md, generated from the point-form draft via the technical-document skill and verified against src/interfaces/IPolicyRegistry.sol.

Note

This branch currently removes the previously-shipped 02_Cobalt_B20Asset_multiplier.md and 02_Cobalt_B20_seize.md changelog entries as part of the point-form migration. Flagging here since that's a broader change than the composite-policy spec alone — happy to split out if reviewers want the migration and the spec rewrite as separate PRs.

Test plan

  • Confirm changelog/README.md index still points to valid entries for all three Cobalt line items
  • Review whether 02_Cobalt_B20Asset_multiplier.md and 02_Cobalt_B20_seize.md should be restored or migrated to point-form too

rayyan224 and others added 3 commits August 14, 2026 11:41
README.md now documents only the current state (ordinals, index of
shipped/upcoming entries). Naming rules, entry structure, and
verification requirements move to changelog/AGENTS.md.

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Interface Coverage

✅ All interface functions have test coverage.

@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown

📊 Forge Coverage (src/lib/)

🟡 ≥95% across all metrics — some metrics below 99%.

File Lines Stmts Branches Funcs
🟡 B20FactoryLib.sol 97.70% 98.00% 100.00% 95.00%
🔴 test/lib/ForceFeeder.sol 0.00% 0.00% 100.00% 0.00%
🔴 test/lib/PrecompileProbe.sol 0.00% 0.00% 0.00% 0.00%
🟢 MockActivationRegistry.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockActivationRegistryStorage.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20Asset.sol 100.00% 100.00% 100.00% 100.00%
🟡 MockB20Factory.sol 98.96% 99.10% 100.00% 100.00%
🟢 MockB20Stablecoin.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20Storage.sol 100.00% 100.00% 100.00% 100.00%
🟡 MockPolicyRegistry.sol 100.00% 99.54% 97.67% 100.00%
🟢 MockPolicyRegistryStorage.sol 100.00% 100.00% 100.00% 100.00%
Total 97.07% 97.52% 98.16% 97.00%

Full report: download artifact. To browse locally: make coverage (runs forge coverage + genhtml + opens the HTML report).

@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown

✅ Fork tests: all 721 passed

base/base is fully in sync with the base-std spec.

rayyan224 and others added 3 commits August 18, 2026 14:34
Claude Code only discovers skills under .claude/skills/, so the skill
was invisible in the skills listing while it lived under .agents/skills/.

Co-Authored-By: Claude <noreply@anthropic.com>
…ame (#204)

* docs(changelog): expand composite-policy point-form into written spec

Converts the COMPOSITE_POLICY.md point-form draft into a full written
changelog entry at changelog/02_Cobalt_PolicyRegistry_composite_policy.md,
verified against src/interfaces/IPolicyRegistry.sol.

Co-Authored-By: Claude <noreply@anthropic.com>

* docs(changelog): add TEMPLATE_COMPOSITE_POLICY.md as a worked example

Keeps changelog/COMPOSITE_POLICY.md in place and adds a copy at
changelog/TEMPLATE_COMPOSITE_POLICY.md, alongside the generic
changelog/TEMPLATE_POINT_FORM.md, so both remain visible for comparison.

Co-Authored-By: Claude <noreply@anthropic.com>

* Update changelog/02_Cobalt_PolicyRegistry_composite_policy.md

Co-authored-by: Stephan Cilliers <stephan.cilliers@coinbase.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Stephan Cilliers <stephan.cilliers@coinbase.com>
Comment thread changelog/COMPOSITE_POLICY.md Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wondering if we need this template if we have the point form one and we will have examples to reference by looking at existing changelog files

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Template can live in the skill. The template is what should be filled in by the user in pointform.

rayyan224 and others added 8 commits August 18, 2026 17:21
Convert the seize point-form template into the written changelog entry
02_Cobalt_B20_seize.md (already indexed in changelog/README.md).

Co-Authored-By: Claude <noreply@anthropic.com>
Adds 02_Cobalt_B20_seize.md documenting the new seizeWithMemo function
added to the shared IB20 interface, with independent policy slots
(SEIZE_HOLDER_POLICY, SEIZE_RECEIVER_POLICY), dedicated pause vector
PausableFeature.SEIZE, and SEIZE_ROLE. burnBlocked is deprecated-dialable.

Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…chnical-document format)

Adds 02_Cobalt_B20_seize.md with the full technical specification generated
from the point-form template via /technical-document skill. Includes
Interface Changes with selector/topic0 table, trimmed code snippet,
Behavioural Changes with execution flow, Examples before/after, Design
Decisions, and Migration Steps.

Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Rewrites the Background section to precisely describe the policy-slot
architecture: fine-grained slots keyed by operation and actor position,
PolicyRegistry isAuthorized consultation, and the separation of access
control (roles) from compliance logic (policy slots).

Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@rayyan224
rayyan224 marked this pull request as ready for review August 19, 2026 15:46
rayyan224 and others added 4 commits August 19, 2026 11:50
- Adds scheduled multiplier path via updateUIMultiplier(newMultiplier, effectiveAt)
- Adds cancelUIMultiplierUpdate, newUIMultiplier, effectiveAt, totalSupplyUI, MAX_UI_MULTIPLIER
- Adds ERC-8056 view aliases: uiMultiplier, balanceOfUI, toUIAmount, fromUIAmount, supportsInterface
- Adds UIMultiplierUpdated and UIMultiplierUpdateCancelled events
- Adds EffectiveAtInPast, EffectiveAtTooFar, UIMultiplierUpdateExists, UIMultiplierUpdateDoesNotExist errors
- Retains updateMultiplier as deprecated instant failsafe
- New PendingMultiplier storage at PENDING_OFFSET=4 in ERC-7201 namespace
- No breaking changes; all legacy selectors remain dialable

Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
Co-Authored-By: Claude <noreply@anthropic.com>
This file was accidentally committed at the top level of changelog/;
the canonical composite-policy entry lives at
changelog/02_Cobalt_PolicyRegistry_composite_policy.md.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants