subscription-ledger
Rules for recording, matching and reporting saved subscriptions and recurring bills, their dates, provenance and opt-in reminders.
Skill by akhilvuputuri
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/akhilvuputuri-subscription-ledger
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/subscription-ledger
What's inside
- Skill name
subscription-ledger- Description
- Rules for recording, matching and reporting saved subscriptions and recurring bills, their dates, provenance and opt-in reminders.
- License
- MIT
- Instructions
- 17 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Subscription ledger
Work only from explicit owner statements in the brief. An instruction such as "add Netflix, 22.98 SGD monthly" confirms that item; a receipt, screenshot, suggested item or promotional offer alone does not. If the brief only contains extracted candidates, return needsOwner asking which to track. Invoice-backed fields follow the invoice-ledger skill.
Use subscription_list to retrieve IDs and current revisions before updating. A merchant-only match is ambiguous: ask which plan/account, never select the first. Merchant plus a plan or account label can resolve one saved item. Include inactive items before adding a previously cancelled merchant. Record cancellation only when the owner says they completed it; telling you they intend to cancel is not a cancellation. Cancelling means renewal was stopped but the owner remains paid through a stated date; cancelled means the owner says it ended. No merchant account can be changed or paid here.
subscription_record needs a fresh requestKey UUID; reuse it only for an exact retry. When a turn includes multiple original inputs, first call subscription_list(sourceInputs=true), follow nextOffset, and pass the exact sourceInputIds that support the fields. Never label unrelated later inputs as sources. If an excerpt is insufficient, ask the coordinator to read that original input with conversation_read(id). The host validates ownership and current coordinator/child run membership; a single original input is bound automatically. Updates need the baseRevision just read. Store amount as the stated decimal string, currency explicitly, and amountType fixed or variable only when known. Set cadence and status from the owner statement, and use unknown when absent. A monthly bill with a variable amount does not become a fixed recurring price. Keep nextChargeDate, trialEndDate, cancellationDeadline and paidThroughDate distinct. Resolve relative dates using Singapore time; "renews on the 5th" means the next future 5th. Never invent a cancellation deadline, charge time or tax treatment. Every supplied non-null nextChargeDate needs nextChargeEstimated explicitly: false for stated, true for inferred. Clearing the date also clears its certainty. Null explicitly clears a previously saved value. Only short merchant, plan and account labels belong here, never payment numbers, bank details or full addresses.
Inspect reminder settings with subscription_list(id). subscription_settings only changes preferences; never call it as a read. Reminders are opt-in, per item, through subscription_settings or reminderEnabled on an explicit request to remind. Enabling uses defaults of 7 days before annual renewals and cancellation deadlines, 3 before trial ends, no other renewal reminder, and 09:00 Singapore. daysBefore overrides all dates for that item; time changes the firing hour. Confirm the actual returned firesAt in Singapore time and explain estimated dates. If the notice window has passed, report the warning instead of promising a scheduled reminder. Dates and reminders commit together, edits withdraw obsolete reminders, and past delivery attempts are never automatically replayed. A pending/failed reminder is not a delivered message.
A stated future price ("Netflix goes up to 24.98 SGD on 1 December") is a pending price change: set pendingAmount, pendingCurrency and pendingEffectiveDate together, and keep amount as the current price. Never set one from a promotion, a guess or an invoice. From the effective date, reads, totals and later reminders use the new price, and the next update records it in history (the result's appliedPendingPrice says so). The effective date must be in the future; clearing all three before it drops the change, and once it is in effect, correct amount directly. Price-change notices are on unless the owner turns them off with subscription_settings(priceAlerts=false). They give a reminder 3 days before a saved price change, even when other reminders are off, and one alert when a background invoice match does not show the saved price. Report the returned firesAt and any warnings. Explain that an alert never changes the tracker.
The monthly summary is opt-in and owner-wide. subscription_summary_set(enabled, day?, time?) turns it on or off: one Telegram message on that day of each month (default the 1st, 09:00 Singapore). It is built from saved records with no model call and covers monthly equivalents, the previous calendar month's recorded changes and the next 30 days. Use subscription_summary to preview it, or to answer "what changed last month" (pass month for another month). Never call the setter as a read. The summary sees only saved records, not bank or card statements.
Give concise model-written answers. Monthly equivalents are normalized estimates, not actual spending or forecast charges; totals keep currencies separate and exclude unknown/variable/trial/cancelling prices. Surface unknowns and use subscription_list for the owner's next 30 days. The read-only Mini App has a Subscriptions tab with history and reminders. Put created/read subscription IDs in refs. There is no automatic source monitoring, external cancellation, payment, negotiation or cancellation button.From akhilvuputuri/chief-agent, MIT.
More from akhilvuputuri/chief-agent
- 0.584score
sg-places
akhilvuputuri
How to answer Singapore carpark, free and night parking, traffic camera, public holiday and hawker centre closure questions with the Singapore tools.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
sg-rain
akhilvuputuri
How to read NEA rain radar with sg_rain and describe where rain is, where it went and where it is heading for a location.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
sg-weather
akhilvuputuri
How to read and present NEA weather, rain, air quality, UV, heat stress and alert results for one Singapore region.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
sg-catalogue
akhilvuputuri
The data.gov.sg datasets the Singapore agent may query with sg_dataset, with their fields and query recipes.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
sg-transport
akhilvuputuri
How to present LTA bus arrivals, bus stop lookups, MRT service status and traffic incidents for Singapore.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
invoice-ledger
akhilvuputuri
How to update the subscription tracker from invoices that gathering matched, with host-checked invoice evidence, price-change reporting and owner authorisation.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
personal-assistance
akhilvuputuri
Capture personal information and use connected daily tools faithfully.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
task-execution
akhilvuputuri
Track substantial work, changing scope, and resumable progress.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
job-alignment
akhilvuputuri
Evidence-backed fit and minimum useful preparation for any requested set of roles.
SkillAFreshness: A★ 1Claude Code +9 - 0.551score
synthesis
akhilvuputuri
Compare evidence and explain conclusions without overstating certainty.
SkillAFreshness: A★ 1Claude Code +9 - 0.551score
source-research
akhilvuputuri
Find original public sources and assess whether they support the exact assigned question.
SkillAFreshness: A★ 1Claude Code +9 - 0.551score
research
akhilvuputuri
Research sources and assess their applicability to a question.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 16
- Last commit (this folder)
- Oct 19, 2026 (10 days ago)
- Last release
- Oct 11, 2026 (18 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/akhilvuputuri/chief-agent
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from akhilvuputuri
- 0.584score
sg-rain
akhilvuputuri
How to read NEA rain radar with sg_rain and describe where rain is, where it went and where it is heading for a location.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
sg-places
akhilvuputuri
How to answer Singapore carpark, free and night parking, traffic camera, public holiday and hawker centre closure questions with the Singapore tools.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
sg-transport
akhilvuputuri
How to present LTA bus arrivals, bus stop lookups, MRT service status and traffic incidents for Singapore.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
sg-weather
akhilvuputuri
How to read and present NEA weather, rain, air quality, UV, heat stress and alert results for one Singapore region.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
sg-catalogue
akhilvuputuri
The data.gov.sg datasets the Singapore agent may query with sg_dataset, with their fields and query recipes.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
invoice-ledger
akhilvuputuri
How to update the subscription tracker from invoices that gathering matched, with host-checked invoice evidence, price-change reporting and owner authorisation.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
subscription-ledger skill. Agent Mart. https://agentmart.dev/skills/akhilvuputuri-subscription-ledger (last updated 2026-10-24)