Counterparty Channel Discipline
affaan-m/ECC
Per-channel strict prompts, mention gating, silent observation, and a communication autonomy policy for agents that sit in shared channels with external counterparties.
Contract register: counterparty, owner, start and end dates, auto-renewal flag, renewal notice deadline, value and tax basis.
$ npx skills add sickn33/agentic-awesome-skills --skill contract-document-renewal -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sickn33/agentic-awesome-skills contract-document-renewal --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/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/contract-document-renewal .claude/skills/contract-document-renewal && 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 "contract-document-renewal" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/contract-document-renewal into .claude/skills/contract-document-renewal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contract-document-renewal", 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/sickn33/agentic-awesome-skills/tree/main/skills/contract-document-renewalType 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 sickn33/agentic-awesome-skills --skill contract-document-renewal -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sickn33/agentic-awesome-skills contract-document-renewal --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/contract-document-renewal .agents/skills/contract-document-renewal && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "contract-document-renewal" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/contract-document-renewal into .agents/skills/contract-document-renewal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contract-document-renewal", 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 sickn33/agentic-awesome-skills --skill contract-document-renewal -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sickn33/agentic-awesome-skills contract-document-renewal --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/contract-document-renewal .cursor/skills/contract-document-renewal && 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 "contract-document-renewal" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/contract-document-renewal into .cursor/skills/contract-document-renewal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contract-document-renewal", 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/sickn33/agentic-awesome-skills.git --path skills/contract-document-renewal--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 sickn33/agentic-awesome-skills --skill contract-document-renewal -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sickn33/agentic-awesome-skills contract-document-renewal --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/contract-document-renewal .gemini/skills/contract-document-renewal && 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 "contract-document-renewal" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/contract-document-renewal into .gemini/skills/contract-document-renewal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contract-document-renewal", 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 sickn33/agentic-awesome-skills contract-document-renewalInstalls 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 sickn33/agentic-awesome-skills --skill contract-document-renewal -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/contract-document-renewal .github/skills/contract-document-renewal && 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 "contract-document-renewal" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/contract-document-renewal into .github/skills/contract-document-renewal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contract-document-renewal", 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 sickn33/agentic-awesome-skills --skill contract-document-renewal -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sickn33/agentic-awesome-skills contract-document-renewal --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/contract-document-renewal .opencode/skills/contract-document-renewal && 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 "contract-document-renewal" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/contract-document-renewal into .opencode/skills/contract-document-renewal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "contract-document-renewal", 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.
contract-document-renewalContract register: counterparty, owner, start and end dates, auto-renewal flag, renewal notice deadline, value and tax basis.
Contract Document Renewal is an agent skill from sickn33/agentic-awesome-skills. Contract register: counterparty, owner, start and end dates, auto-renewal flag, renewal notice deadline, value and tax basis. Use for renewal tracking and notice deadlines.
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400+ agentic skills. Includes… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 680176d. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml, csv, sql and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
json-schema.orgFrom 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.
Contract Document Renewal loads about 4.8k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 1,081 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 sickn33/agentic-awesome-skills at commit 680176d, republished under its MIT licence (© sickn33). 1,081 words, ~4,797 tokens.
.claude/skills/contract-document-renewal/SKILL.md (or your agent's skills folder).What it is: Renewal management.
Works out the smallest useful Contract & Document Renewal setup for the business in front of it, then builds it only when asked. The default output is a short recommendation, not a spreadsheet. Artifacts - CSV, SQL DDL, JSON Schema, Notion mapping - are produced on request, from one field list so they cannot drift apart.
Layer: Layer 7: Protect. Fits: Growth stage. Table code: n/a.
Also use it when the user says "renewal management", or describes the same process happening in a spreadsheet, a document or someone inboxes.
Do not use it for: payroll calculation, tax filing, or legal advice. This skill produces empty templates only - it never holds or processes real employee or customer data.
Follow the shared execution contract. The module-specific rules below define only domain fields, decisions, calculations, and safety constraints.
Read the request and pick the intent before asking anything.
Ask only if this is the highest-value missing fact; otherwise proceed without an opener:
Q: When is your next renewal?
Skip anything the user already answered, in any earlier message. Ask the rest one at a time, and stop as soon as the remaining answers would not change the output.
Never invent an answer. If the user does not know, record it as unknown and carry on.
Hold the answers in this shape. It stays internal - it is not shown to the user unless they ask, and it never carries a value the user did not give.
module: contract-document-renewal
intent: null # setup | advice | review | fix | build | convert | export
scale: null # Starter | Growth | Scale, only if the answer changes it
areas:
"Documents": null
"Dates": null
"Ownership": null
"Current process": null
"Outcome": null
requested_outputs: [] # csv | sql | json | notion | xlsx - requested formats only
confirmed_facts: [] # only what the user actually said
open_questions: [] # the unanswered ones, in the order worth askingIf an artifact was requested, build it after resolving essential missing facts. Otherwise give a short recommendation and offer the relevant artifact.
Recommended approach: Track the renewal date, the notice deadline and the owner as one record. Set the notice date as the trigger, not the renewal date.
Why this one: Renewals are missed because the notice deadline is earlier than the renewal date. Record both and act on the earlier one.
Workflow: Contract recorded → Notice window → Reminder → Review → Renewed, amended or ended
The notice deadline is the trigger, so it has to exist as a date. This module exists because the notice
deadline falls before the renewal date, and Renewal Notice (Days) alone cannot be watched - a number of days
never goes red. Store the deadline in Notice Deadline and calculate it, never accept it as typed:
Notice Deadline = End Date - Renewal Notice (Days)Treat the difference as calendar days, count the deadline day itself as day 1, and store the result as a plain
date in ISO YYYY-MM-DD. A notice period is a count of days, not a date, so never accept a date typed into
Renewal Notice (Days) and never accept a deadline typed into Notice Deadline - the two disagree silently and
the register misses the reminder. If the contract auto-renews and no notice is served, Notice Deadline is the
last day the user may still act; after it passes, Auto-Renew TRUE means the contract has renewed by operation of
its own terms and Status must not still read In Renewal.
Status means one thing at a time. Expiring Soon is the window between the notice deadline and the end date -
action is still possible. In Renewal is only correct once a renewal has actually been agreed or served. A
contract whose notice deadline has passed with no action recorded is Expiring Soon with the gap stated in
Notes, never In Renewal and never silently Renewed.
Money basis: this module does not assume that Contract Value is tax-inclusive or tax-exclusive. Record the
basis in Tax Basis and leave it Not confirmed until the user says, rather than deducing it from the currency
or the size of the number. Do not add tax rate or tax amount fields unless the user asks for tax tracking.
Once the user asks for it, derive the fields from the confirmed context and emit the requested artifacts. For machine-readable text, keep prose outside the data; for files, provide a usable link. Report material validation failures or limitations separately.
A selected Notion output is rendered by notion-manual-import, so route the
Notion step there. When the user selects Notion, hand that step to
@notion-manual-import: it holds the CSV, the property
mapping, the import steps and the verification checklist, and it renders the Field
Reference below instead of defining a table of its own. Do not restate the mapping
here and do not improvise the import steps. Manual CSV and mapping outputs need no
connection. For requested workspace changes, follow the shared contract: verify actual
tool access and the target before writing. A user saying "connected" is not tool evidence.
Never ask for a Notion password or token.
For an Excel-compatible CSV, use UTF-8 with a byte order mark so Excel opens the
text correctly. A CSV is not an .xlsx workbook; create .xlsx only when the user
requests a workbook.
A CSV carries no types, so after it, name the columns
that need a number, date or currency format applied.
Contract Title,Counterparty,Contract Type,Owner,Department,Start Date,End Date,Renewal Notice (Days),Notice Deadline,Auto-Renew,Contract Value,Tax Basis,Currency,Linked Legal Record,Status,Contract ID
Example Master Services Agreement,Example Customer Ltd,Customer,Example Owner,Delivery,2026-04-01,2027-03-31,60,2027-01-30,FALSE,120000.00,Not confirmed,INR,DOC-EXAMPLE-001,Active,(blank)
CREATE TABLE contract_document_renewal (
contract_title VARCHAR(255),
counterparty VARCHAR(255),
contract_type VARCHAR(100) NOT NULL,
owner VARCHAR(255),
department VARCHAR(255),
start_date DATE NOT NULL,
end_date DATE NOT NULL,
renewal_notice_days NUMERIC NOT NULL,
notice_deadline DATE,
auto_renew BOOLEAN,
contract_value NUMERIC(14,2) NOT NULL,
tax_basis VARCHAR(100) NOT NULL,
currency VARCHAR(255),
linked_legal_record VARCHAR(255),
status VARCHAR(100) NOT NULL,
contract_id SERIAL PRIMARY KEY,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW(),
-- The notice window is the whole point of this register, so the two dates must be in order.
CHECK (end_date > start_date),
CHECK (renewal_notice_days >= 0),
CHECK (status IN ('Active', 'Expiring Soon', 'In Renewal', 'Renewed', 'Expired', 'Terminated')),
CHECK (tax_basis IN ('Not confirmed', 'Tax-inclusive', 'Tax-exclusive')),
-- The deadline is derived, so it is never NOT NULL and never typed in by hand.
CHECK (notice_deadline IS NULL OR notice_deadline <= end_date)
-- Renaming a relation to text is a data decision, not a formatting one:
-- Linked Legal Record is VARCHAR(255) naming a document reference. If the signed-document
-- library is ever added to this build, it becomes a real foreign key then, not before.
);
CREATE INDEX idx_contract_document_renewal_status ON contract_document_renewal (status);
CREATE INDEX idx_contract_document_renewal_notice ON contract_document_renewal (notice_deadline);
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Contract Document Renewal",
"type": "object",
"additionalProperties": false,
"properties": {
"Contract Title": { "type": "string" },
"Counterparty": { "type": "string" },
"Contract Type": { "type": "string" },
"Owner": { "type": "string" },
"Department": { "type": "string" },
"Start Date": { "type": "string", "format": "date" },
"End Date": { "type": "string", "format": "date" },
"Renewal Notice (Days)": { "type": "number" },
"Notice Deadline": { "type": "string", "format": "date" },
"Auto-Renew": { "type": "boolean" },
"Contract Value": { "type": "number" },
"Tax Basis": { "type": "string" },
"Currency": { "type": "string" },
"Linked Legal Record": { "type": "string" },
"Status": { "type": "string" },
"Contract ID": { "type": "integer" }
},
"required": [
"Contract Type",
"Start Date",
"End Date",
"Renewal Notice (Days)",
"Contract Value",
"Tax Basis",
"Status"
]
}| CSV column | Notion property | Set after import |
|---|---|---|
| Contract Title | Title | Use as the database title |
| Counterparty | Text | Leave as Text. Record the legal entity name the user gives, and keep the registered name and the trading name apart if they differ |
| Contract Type | Select | Add options: "Customer", "Vendor", "Employment", "Lease", "Service", "NDA" |
| Owner | Text | Leave as Text. A person, so a name and not a relation; the directory owns the person record |
| Department | Text | Leave as Text |
| Start Date | Date | Convert to Date |
| End Date | Date | Convert to Date |
| Renewal Notice (Days) | Number | Convert to Number. A whole number of days, never a date; the date is derived |
| Notice Deadline | Date | Convert to Date. Calculated, not typed: End Date minus Renewal Notice (Days) |
| Auto-Renew | Checkbox | Convert to Checkbox |
| Contract Value | Number (format: currency) | Convert to Number, set format to Currency |
| Tax Basis | Select | Add options: "Not confirmed", "Tax-inclusive", "Tax-exclusive" |
| Currency | Text | Leave as Text. ISO 4217 code, for example INR, not "Rupees" |
| Linked Legal Record | Text | Leave as Text, NOT a Relation. The signed document library is not part of this build, so no target database exists to link to |
| Status | Select | Add options: "Active", "Expiring Soon", "In Renewal", "Renewed", "Expired", "Terminated" |
| Contract ID | Text (preserve source ID) | Keep imported IDs as Text; optionally add a separate Unique ID property |
The rows above are documentation examples only. Emit empty templates unless the user explicitly requests examples. Money stays `currency`, dates stay `date`,
and anything pointing at another table stays `relation`.
## Field Reference
| # | Field | Type | SQL | JSON Schema | Notion | CSV example |
|---:|---|---|---|---|---|---|
| 1 | Contract Title | `text` | `VARCHAR(255)` | `string` | Text | `Example Master Services Agreement` |
| 2 | Counterparty | `text` | `VARCHAR(255)` | `string` | Text | `Example Customer Ltd` |
| 3 | Contract Type | `select` | `VARCHAR(100)` | `string` | Select | `Customer` |
| 4 | Owner | `text` | `VARCHAR(255)` | `string` | Text | `Example Owner` |
| 5 | Department | `text` | `VARCHAR(255)` | `string` | Text | `Delivery` |
| 6 | Start Date | `date` | `DATE` | `string, format: date` | Date | `2026-04-01` |
| 7 | End Date | `date` | `DATE` | `string, format: date` | Date | `2027-03-31` |
| 8 | Renewal Notice (Days) | `number | `NUMERIC` | `number` | Number | `60` |
| 9 | Notice Deadline | `date` | `DATE` | `string, format: date` | Date | `2027-01-30` |
| 10 | Auto-Renew | `checkbox` | `BOOLEAN` | `boolean` | Checkbox | `FALSE` |
| 11 | Contract Value | `currency` | `NUMERIC(14,2)` | `number` | Number (format: currency) | `120000.00` |
| 12 | Tax Basis | `select` | `VARCHAR(100)` | `string` | Select | `Not confirmed` |
| 13 | Currency | `text` | `VARCHAR(255)` | `string` | Text | `INR` |
| 14 | Linked Legal Record | `text` | `VARCHAR(255)` | `string` | Text | `DOC-EXAMPLE-001` |
| 15 | Status | `select` | `VARCHAR(100)` | `string` | Select | `Active` |
| 16 | Contract ID | `id` | `SERIAL PRIMARY KEY` | `integer` | Text (preserve source ID) | (blank) |
## Select Options
**Contract Type**
Customer | Vendor | Employment | Lease | Service | NDA
**Tax Basis**
Not confirmed | Tax-inclusive | Tax-exclusive
A starting set, not a tax conclusion. `Not confirmed` is correct until the user states their basis; do not deduce it, and do not add a rate field, because a rate is a fact about the user that this module cannot know.
**Status**
Active | Expiring Soon | In Renewal | Renewed | Expired | Terminated
## Relations
Link fields: none
`Linked Legal Record` is **not** a relation and is deliberately not typed `relation`. It holds a document
reference such as `DOC-EXAMPLE-001`. The signed-document library is not part of this build, so the target
database does not exist, and §8 forbids inventing one or creating a Notion `Relation` to nowhere. It stays
`Text` in every artifact, with a SQL comment saying what it is, and becomes a real foreign key only if that
database is ever built. Naming the intended target is what makes that upgrade possible later.
`Owner` is likewise a name, not a foreign key: the directory table is not part of this build, so a person is
recorded by name and the reference will drift from the directory.
## Examples
**Prompt**
A vendor contract renewed automatically at a higher price because nobody tracked it.
**Context first** - one question per message, nothing already answered:
> **Q:** How many contracts?
> **A:** Around fifteen.
>
> **Q:** Notice period?
> **A:** Thirty days on most.
>
> **Q:** Tracked today?
> **A:** In a spreadsheet, partly.
**Recommended next step** - offered, not built:
> Track the renewal date, the notice deadline and the owner as one record. Set the notice date as the trigger, not the renewal date.
>
> Workflow: Contract recorded → Notice window → Reminder → Review → Renewed, amended or ended
>
> Want the CSV, SQL, JSON Schema and Notion mapping for this?
## Best Practices
- Build when requested; recommend and offer a build for advice-only requests.
- One question per message. A batched intake reads as a form and gets guessed at.
- Keep display names identical across CSV and JSON; document normalized SQL identifiers.
- Use `relation` for anything that points at another table, `text` only for free text.
- Money fields are `currency`, never `text`. Dates are `date`, never free text.
- If the user requests an example row, keep it obviously fake so nobody imports it as real data.
## Limitations
- Empty template only. It does not compute payroll, tax, leave balances or KPIs.
- Notion relations need both databases imported before the link column resolves.
- Select options are a starting set. Rename them to match how the business talks.
- No automation, reminders or sync. Those need the integration layer.
- Does not review contract terms or provide legal advice.
- Legal, tax and HR review is still required before this drives real decisions.
## Security & Safety Notes
- Never fill in real names, salaries, medical or banking data. Placeholders only.
- Label example rows as synthetic, and keep bank details masked.
- Local reads, generation commands, and validation are part of a requested artifact build.
External writes, messages, provisioning, and publication require authorization for that
action and target; existing explicit authorization does not need to be repeated.
- If sensitive data is supplied, avoid repeating unnecessary identifiers. Use only what
the requested review needs; keep generated templates empty. Do not claim deletion
from the conversation or service storage.
- Privacy, legal and disciplinary cases need a qualified human reviewer before anything
is acted on.
## Common Pitfalls
- **Problem:** a static mapping is described as a completed workspace build.
**Solution:** deliver manual mappings without a connection; claim a live change only
after the authorized tool operation succeeds.
- **Problem:** asked all six questions in one message.
**Solution:** ask one, wait, and drop any the first answer already covered.
- **Problem:** built a full system when one table was asked for.
**Solution:** build what was requested; mention the parent skill separately.
- **Problem:** all four artifacts drift apart.
**Solution:** derive all four from the field list in this file, never by hand.
- **Problem:** a renewal was missed even though the notice period was recorded.
**Solution:** `Renewal Notice (Days)` is an input that never goes red on its own. `Notice Deadline` is the date to watch; if it was left empty, the register was watching the wrong field.
- **Problem:** a contract reads `In Renewal` with no renewal agreed.
**Solution:** `In Renewal` claims a renewal has been agreed or served. Between the notice deadline and the end date the correct value is `Expiring Soon`, with the reason in `Notes`. Never promote a record to `Renewed` to make a spreadsheet look tidy.
- **Problem:** Notion import shows every column as Text.
**Solution:** that is expected. Apply the property mapping table once, after import.
## Related Skills
- [Module Catalog](https://github.com/sickn33/agentic-awesome-skills/blob/main/CATALOG.md) - find the relevant module, then read its skill.
- @people-directory - the employee master record most modules link to.
- @notification-reminder-hub - turns due dates in this module into reminders.
## Reusable Prompt
I want to set up renewal management for my company. Ask me one short question at a time, and only about what I have not already told you. Then recommend the smallest setup that fits, and wait for me to ask before you build it. When I ask, output CSV, SQL DDL, JSON Schema, a Notion property mapping or an Excel workbook. Data only.
© sickn33, MIT. 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/contract-document-renewal of sickn33/agentic-awesome-skills.
Open the folder on GitHubat commit 680176d
We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in sickn33/agentic-awesome-skills, which our catalogue first saw on October 7, 2026.
Contract Document Renewal 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 |
|---|---|---|---|---|---|---|
| Contract Document Renewal this skillsickn33/agentic-awesome-skills | 47k | 1 repos | ~4.8k | Automated safety check: Pass | MIT | |
| Counterparty Channel Disciplineaffaan-m/ECC | 276k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Iot Registerruvnet/ruflo | 74k | — | ~263 | Automated safety check: Pass | MIT | |
| Contract Renewal Trackeranthropics/claude-for-legal | 9.6k | 2 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Content Dates Auditthedaviddias/Front-End-Checklist | 74k | — | ~691 | Automated safety check: Pass | MIT | |
| Gws Events Renewgoogleworkspace/cli | 31k | — | ~312 | Automated safety check: Pass | Apache-2.0 |
affaan-m/ECC
Per-channel strict prompts, mention gating, silent observation, and a communication autonomy policy for agents that sit in shared channels with external counterparties.
ruvnet/ruflo
Register a Cognitum Seed device by endpoint and establish agent bridge
anthropics/claude-for-legal
Shows which contracts renew soon and when notice must be sent by, working from a maintained renewal register, and warns about missed cancellation windows.
thedaviddias/Front-End-Checklist
Audits article and blog pages for visible publish dates, Article JSON-LD with datePublished and dateModified, and Open Graph time tags, then fixes what is missing.
googleworkspace/cli
Google Workspace Events: Renew/reactivate Workspace Events subscriptions.
davila7/claude-code-templates
Agile product ownership toolkit for Senior Product Owner including INVEST-compliant user story generation, sprint planning, backlog management, and velocity tracking.
sickn33/agentic-awesome-skills
Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.
sickn33/agentic-awesome-skills
Saves a user's project decisions, rules and preferences into a project-local mdbase so later sessions and other agents can recover the intent.
sickn33/agentic-awesome-skills
Keeps project decisions, research and verified results available across coding-agent sessions through LWC memory, a document Wiki graph and a CodeGraph code index.
sickn33/agentic-awesome-skills
Guides an agent through assessing its own owner for cofounder fit, publishing an approved profile, and ranking complementary profiles other agents published for their owners.
sickn33/agentic-awesome-skills
Integracao com WhatsApp Business Cloud API (Meta). An agent skill from sickn33/agentic-awesome-skills.
sickn33/agentic-awesome-skills
Acts as a proxy for the Cline CLI, dispatching coding tasks one at a time, monitoring runs by hard evidence, relaying decisions to you and learning per-project preferences.
Contract register: counterparty, owner, start and end dates, auto-renewal flag, renewal notice deadline, value and tax basis. Contract Document Renewal is an agent skill from sickn33/agentic-awesome-skills. Contract register: counterparty, owner, start and end dates, auto-renewal flag, renewal notice deadline, value and tax basis.
Contract Document Renewal fits situations like: renewal tracking and notice deadlines.
Run `npx skills add sickn33/agentic-awesome-skills --skill contract-document-renewal -a claude-code`. Or copy the skill folder (skills/contract-document-renewal in sickn33/agentic-awesome-skills) into .claude/skills/contract-document-renewal in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sickn33/agentic-awesome-skills --skill contract-document-renewal -a codex`. Or copy the skill folder (skills/contract-document-renewal in sickn33/agentic-awesome-skills) into .agents/skills/contract-document-renewal 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 sickn33/agentic-awesome-skills --skill contract-document-renewal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/contract-document-renewal, .gemini/skills/contract-document-renewal, .github/skills/contract-document-renewal and .opencode/skills/contract-document-renewal in your project.
SKILL.md names no scripts, command-line tools or credentials: Contract Document Renewal is instructions for the agent only.
SKILL.md names 1 domain. In commands or code: json-schema.org; the agent is likely to contact it when it follows the instructions. 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.
Contract Document Renewal is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.8k tokens (SKILL.md is roughly 19k 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 Contract Document Renewal: Counterparty Channel Discipline (affaan-m/ECC, 276k stars), Iot Register (ruvnet/ruflo, 74k stars), Contract Renewal Tracker (anthropics/claude-for-legal, 9.6k stars) and Content Dates Audit (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sickn33 (a GitHub user) maintains it in sickn33/agentic-awesome-skills, which has 47,379 GitHub stars. The repository holds 1,493 skills in this directory. The repository was last updated on October 9, 2026.
Source: sickn33/agentic-awesome-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.