Skip to content

Commit 4a45175

Browse files
committed
Add ClawHub publish readiness checks
1 parent 27ba9d3 commit 4a45175

4 files changed

Lines changed: 354 additions & 150 deletions

File tree

.clawhubignore

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# ClawHub accepts text-based skill bundles. Keep generated/binary assets in GitHub only.
2+
*.png
3+
*.jpg
4+
*.jpeg
5+
*.gif
6+
*.ico
7+
*.pdf
8+
*.docx
9+
*.ipynb
10+
*.ttf
11+
*.otf
12+
*.woff
13+
*.woff2
14+
15+
preview/
16+
output/
17+
18+
__pycache__/
19+
*.py[cod]
20+
*$py.class
21+
.mypy_cache/
22+
.pytest_cache/
23+
.ruff_cache/
24+
25+
.venv/
26+
venv/
27+
env/
28+
ENV/
29+
30+
.env
31+
.env.*
32+
!.env.example
33+
secrets.json
34+
*_secret.ini
35+
*_local.ini
36+
*.tmp
37+
.DS_Store
38+
Thumbs.db
39+
desktop.ini

CLAW_HUB_PUBLISHING.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# ClawHub Publishing
2+
3+
This repository is prepared for ClawHub publishing as a text-based OpenClaw skill bundle.
4+
5+
## Included In ClawHub
6+
7+
The ClawHub bundle is intended to include text-based skill material only:
8+
9+
- `SKILL.md`, `README.md`, `QUALITY.md`, and this file
10+
- `agents/openai.yaml`
11+
- `pyproject.toml`
12+
- `.github/workflows/quality.yml`
13+
- `scripts/*.py`
14+
- `references/` text files, schemas, catalogs, and examples
15+
- `examples/` text inputs such as `.ini` files or README placeholders
16+
- `assets/diagrams/*.mmd`
17+
- config examples and templates where they are text-based
18+
19+
## Excluded From ClawHub
20+
21+
`.clawhubignore` excludes binary and generated assets from the publish candidate, including PDFs, PNG previews, DOCX files, fonts, logos, `preview/`, `output/`, caches, virtual environments, local env files, and temporary files.
22+
23+
Those files remain part of the GitHub repository for brand presentation, examples, local demos, and generated artifact previews. They are not part of the ClawHub text bundle.
24+
25+
## License And Brand Boundary
26+
27+
ClawHub publishes skills under MIT-0. The text/code bundle can be used under ClawHub's publishing terms, but CompleteTech LLC names, logos, seals, and other brand assets remain reserved. Publishing this text bundle does not grant a trademark or brand-asset license and does not relicense excluded binary brand assets.
28+
29+
## Runtime Dependencies
30+
31+
Runtime requirements are declared in `SKILL.md` under `metadata.openclaw`.
32+
33+
- All Python-backed skills require `python3`.
34+
- PDF/generator skills declare `reportlab` where PDF rendering is used.
35+
- The contract skill declares `jinja2`.
36+
- `pyyaml` is declared so the included quality/audit validator can parse YAML metadata.
37+
- Optional PNG preview dependencies such as `pypdfium2` and `pillow` are GitHub/local-demo conveniences, not required for the ClawHub core workflow unless a user intentionally runs PNG preview generation.
38+
39+
## Local Readiness Check
40+
41+
Run before publishing:
42+
43+
```bash
44+
python3 scripts/validate_quality.py
45+
```
46+
47+
The validator checks lint, Python compilation, structured-file parsing, Mermaid rendering, smoke tests, Pyright where configured, and ClawHub bundle readiness. It does not publish to ClawHub.
48+
49+
## Publishing
50+
51+
Do not publish automatically. Use the ClawHub CLI only after explicit approval and an authenticated owner context, for example:
52+
53+
```bash
54+
clawhub skill publish . --owner <owner> --version <semver>
55+
```

SKILL.md

Lines changed: 128 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,128 @@
1-
---
2-
name: agentic-invoice-skill
3-
description: >-
4-
Create tailored invoices, invoice line items, payment requests, credit memos, pro forma invoices, recurring invoices, milestone invoices, change-order invoices, expense pass-through invoices, late-fee notices, and end-to-end billing workflows for agentic development services. Use when Codex needs to choose, draft, validate, or adapt invoice documents for agentic software workflow engagements from deposit through final payment and post-sale support.
5-
version: 1.0.0
6-
metadata:
7-
openclaw:
8-
skillKey: agentic-invoice-skill
9-
homepage: https://github.com/CompleteTech-LLC/agentic-invoice-skill
10-
requires:
11-
bins:
12-
- python3
13-
---
14-
15-
# Agentic Invoice Skill
16-
17-
## Purpose
18-
19-
Create practical invoice documents for agentic development services end to end: upfront deposits, scoped pilots, discovery, implementation, evaluation, change orders, retainers, support, expenses, credits, late fees, refunds, and closeout.
20-
21-
## System Boundary
22-
23-
This skill owns billing document drafting and invoice-event selection. Use `agentic-proposal-skill` for pricing rationale or commercial scope before approval, `agentic-contract-skill` for agreement terms, `agentic-delivery-skill` for milestone evidence, `agentic-email-skill` for the message that sends an invoice, and an accounting system or human reviewer for final tax, payment, ledger, and collection decisions.
24-
25-
## Core Workflow
26-
27-
1. Identify the invoice event: estimate, deposit, milestone, monthly retainer, time and materials, change order, expense, final invoice, credit, late fee, refund, or renewal.
28-
2. Gather required facts: provider, client, invoice number, issue date, due date, terms, currency, contract or SOW reference, project name, billing period, line items, taxes, discounts, credits, previous payments, payment instructions, and notes.
29-
3. Use `references/invoice-positioning.md` for service language and risk boundaries.
30-
4. Use `references/use-case-decision-table.md` to choose the right invoice type.
31-
5. Use `references/invoice-lifecycle.md` for end-to-end billing flow and gates.
32-
6. Use `references/invoice-catalog.md` for the near-exhaustive invoice template library.
33-
7. Draft clearly and conservatively. Do not invent tax IDs, banking details, tax rates, contract terms, or legal/accounting claims.
34-
35-
## Invoice Selection Guide
36-
37-
Choose by billing event:
38-
39-
- Before signed agreement or purchase order: use `pro-forma-invoice` or `deposit-request-invoice`.
40-
- Fixed-scope pilot deposit: use `pilot-deposit-invoice`.
41-
- Workflow assessment only: use `discovery-assessment-invoice`.
42-
- Contract signing deposit: use `contract-deposit-invoice`.
43-
- Milestone reached: use `milestone-invoice`.
44-
- Prototype delivered: use `prototype-delivery-invoice`.
45-
- Evaluation or test-set work delivered: use `evaluation-work-invoice`.
46-
- Documentation and handoff complete: use `handoff-invoice`.
47-
- Final balance due: use `final-balance-invoice`.
48-
- Hourly work: use `time-and-materials-invoice`.
49-
- Monthly support or managed monitoring: use `monthly-retainer-invoice`.
50-
- Recurring agent operations support: use `recurring-support-invoice`.
51-
- Additional scope after agreement: use `change-order-invoice`.
52-
- Rush work: use `rush-fee-invoice`.
53-
- Added integration or tool connector: use `integration-add-on-invoice`.
54-
- API, model, hosting, storage, or third-party pass-through charges: use `usage-pass-through-invoice`.
55-
- Travel, printing, procurement, or reimbursable costs: use `expense-reimbursement-invoice`.
56-
- Support hours exceeded: use `support-overage-invoice`.
57-
- Late payment fee or finance charge: use `late-fee-invoice`.
58-
- Payment plan installment: use `installment-invoice`.
59-
- Partial payment received: use `partial-payment-receipt-invoice`.
60-
- Client prepayment or credit balance: use `prepayment-credit-invoice`.
61-
- Discount or courtesy reduction: use `discount-adjustment-invoice`.
62-
- Correcting a prior invoice: use `corrected-invoice`.
63-
- Cancelled project with earned work: use `termination-invoice`.
64-
- Refund owed: use `refund-memo`.
65-
- Credit owed against future work: use `credit-memo`.
66-
- Retainer renewal: use `retainer-renewal-invoice`.
67-
- Expansion to a second workflow: use `expansion-workflow-invoice`.
68-
- Training or enablement: use `training-invoice`.
69-
- Advisory-only work: use `advisory-invoice`.
70-
- Acceptance holdback release: use `holdback-release-invoice`.
71-
- Tax-only adjustment: use `tax-only-invoice`.
72-
- Voiding a prior invoice: use `voided-invoice-notice`.
73-
- Confirming full payment: use `paid-in-full-receipt`.
74-
75-
When several templates fit, choose the invoice closest to the actual commercial trigger. For example, if a prototype was delivered but the contract bills only on milestone acceptance, use `milestone-invoice`, not `prototype-delivery-invoice`.
76-
77-
## Quality Rules
78-
79-
- Use exact client-provided amounts and terms.
80-
- Keep line items specific enough for approval but not cluttered.
81-
- Tie invoices to contract, SOW, change order, or accepted milestone references when available.
82-
- Separate professional services, third-party pass-throughs, expenses, taxes, credits, and late fees.
83-
- Mark drafts as drafts if payment details or tax handling are unknown.
84-
- Do not put legal, tax, or accounting advice on invoices unless the user specifically asks for explanatory notes.
85-
- Never fabricate bank accounts, tax IDs, purchase order numbers, tax rates, or compliance status.
86-
87-
## Resource Guide
88-
89-
- `references/invoice-positioning.md`: load for agentic development service wording, line-item language, and boundaries.
90-
- `references/use-case-decision-table.md`: load when choosing which invoice to use.
91-
- `references/invoice-lifecycle.md`: load for end-to-end invoicing workflows, approval gates, and follow-up steps.
92-
- `references/invoice-catalog.md`: load for the near-exhaustive invoice template library.
93-
- `references/template-index.json`: machine-readable template metadata used by the renderer.
94-
- `scripts/render_invoice.py`: list invoice templates or render a draft with placeholders.
95-
96-
## Renderer
97-
98-
Use the renderer for repeatable invoice drafts or template discovery:
99-
100-
```bash
101-
python3 scripts/render_invoice.py --list
102-
python3 scripts/render_invoice.py --stage milestone --list
103-
python3 scripts/render_invoice.py --template pilot-deposit-invoice --var client_name=Acme --var invoice_number=INV-1001 --var amount_due=6000
104-
```
105-
106-
If a user needs a polished production invoice, use the rendered draft as a starting point and replace every placeholder with verified facts.
107-
108-
## Rendering to a Branded PDF
109-
110-
Artifacts from this skill are delivered as branded CompleteTech LLC **PDF** documents, not raw Markdown. The renderer emits the PDF (and prints the Markdown) in **one command**, using the same reportlab branding engine as the contract skill:
111-
112-
```bash
113-
pip install -r requirements.txt
114-
python3 scripts/render_invoice.py --template milestone-invoice \
115-
--out artifact.pdf --png artifact.png \
116-
--title "Invoice INV-2026-0461" --doc-type "MILESTONE INVOICE" \
117-
--meta "INVOICE NO.=INV-2026-0461" --meta "DUE=2026-06-23" --no-cover \
118-
--var client_name="Client Name" --var workflow="support triage"
119-
```
120-
121-
- `--no-pdf` emits Markdown only (the original behavior); `--no-cover` drops the cover page.
122-
- Already drafted the Markdown yourself? Render it directly: `python3 scripts/render_pdf.py --markdown artifact.md --out artifact.pdf --logo assets/logo.png --title "..."`.
123-
- The PDF supports a Markdown subset: `#`/`##`/`###` headings, paragraphs, `-` bullets, tables, `>` callouts, `**bold**`, and `[PAGE_BREAK]`. PDF requires `reportlab`; the optional `--png` preview requires `pypdfium2` and `pillow`. See `assets/examples/` for a rendered example.
1+
---
2+
name: agentic-invoice-skill
3+
description: >-
4+
Create tailored invoices, invoice line items, payment requests, credit memos, pro forma invoices, recurring invoices, milestone invoices, change-order invoices, expense pass-through invoices, late-fee notices, and end-to-end billing workflows for agentic development services. Use when Codex needs to choose, draft, validate, or adapt invoice documents for agentic software workflow engagements from deposit through final payment and post-sale support.
5+
version: 1.0.0
6+
metadata:
7+
openclaw:
8+
skillKey: agentic-invoice-skill
9+
homepage: https://github.com/CompleteTech-LLC/agentic-invoice-skill
10+
requires:
11+
bins:
12+
- python3
13+
install:
14+
- kind: uv
15+
package: reportlab>=4.0
16+
- kind: uv
17+
package: pyyaml>=6.0
18+
---
19+
20+
# Agentic Invoice Skill
21+
22+
## Purpose
23+
24+
Create practical invoice documents for agentic development services end to end: upfront deposits, scoped pilots, discovery, implementation, evaluation, change orders, retainers, support, expenses, credits, late fees, refunds, and closeout.
25+
26+
## System Boundary
27+
28+
This skill owns billing document drafting and invoice-event selection. Use `agentic-proposal-skill` for pricing rationale or commercial scope before approval, `agentic-contract-skill` for agreement terms, `agentic-delivery-skill` for milestone evidence, `agentic-email-skill` for the message that sends an invoice, and an accounting system or human reviewer for final tax, payment, ledger, and collection decisions.
29+
30+
## Core Workflow
31+
32+
1. Identify the invoice event: estimate, deposit, milestone, monthly retainer, time and materials, change order, expense, final invoice, credit, late fee, refund, or renewal.
33+
2. Gather required facts: provider, client, invoice number, issue date, due date, terms, currency, contract or SOW reference, project name, billing period, line items, taxes, discounts, credits, previous payments, payment instructions, and notes.
34+
3. Use `references/invoice-positioning.md` for service language and risk boundaries.
35+
4. Use `references/use-case-decision-table.md` to choose the right invoice type.
36+
5. Use `references/invoice-lifecycle.md` for end-to-end billing flow and gates.
37+
6. Use `references/invoice-catalog.md` for the near-exhaustive invoice template library.
38+
7. Draft clearly and conservatively. Do not invent tax IDs, banking details, tax rates, contract terms, or legal/accounting claims.
39+
40+
## Invoice Selection Guide
41+
42+
Choose by billing event:
43+
44+
- Before signed agreement or purchase order: use `pro-forma-invoice` or `deposit-request-invoice`.
45+
- Fixed-scope pilot deposit: use `pilot-deposit-invoice`.
46+
- Workflow assessment only: use `discovery-assessment-invoice`.
47+
- Contract signing deposit: use `contract-deposit-invoice`.
48+
- Milestone reached: use `milestone-invoice`.
49+
- Prototype delivered: use `prototype-delivery-invoice`.
50+
- Evaluation or test-set work delivered: use `evaluation-work-invoice`.
51+
- Documentation and handoff complete: use `handoff-invoice`.
52+
- Final balance due: use `final-balance-invoice`.
53+
- Hourly work: use `time-and-materials-invoice`.
54+
- Monthly support or managed monitoring: use `monthly-retainer-invoice`.
55+
- Recurring agent operations support: use `recurring-support-invoice`.
56+
- Additional scope after agreement: use `change-order-invoice`.
57+
- Rush work: use `rush-fee-invoice`.
58+
- Added integration or tool connector: use `integration-add-on-invoice`.
59+
- API, model, hosting, storage, or third-party pass-through charges: use `usage-pass-through-invoice`.
60+
- Travel, printing, procurement, or reimbursable costs: use `expense-reimbursement-invoice`.
61+
- Support hours exceeded: use `support-overage-invoice`.
62+
- Late payment fee or finance charge: use `late-fee-invoice`.
63+
- Payment plan installment: use `installment-invoice`.
64+
- Partial payment received: use `partial-payment-receipt-invoice`.
65+
- Client prepayment or credit balance: use `prepayment-credit-invoice`.
66+
- Discount or courtesy reduction: use `discount-adjustment-invoice`.
67+
- Correcting a prior invoice: use `corrected-invoice`.
68+
- Cancelled project with earned work: use `termination-invoice`.
69+
- Refund owed: use `refund-memo`.
70+
- Credit owed against future work: use `credit-memo`.
71+
- Retainer renewal: use `retainer-renewal-invoice`.
72+
- Expansion to a second workflow: use `expansion-workflow-invoice`.
73+
- Training or enablement: use `training-invoice`.
74+
- Advisory-only work: use `advisory-invoice`.
75+
- Acceptance holdback release: use `holdback-release-invoice`.
76+
- Tax-only adjustment: use `tax-only-invoice`.
77+
- Voiding a prior invoice: use `voided-invoice-notice`.
78+
- Confirming full payment: use `paid-in-full-receipt`.
79+
80+
When several templates fit, choose the invoice closest to the actual commercial trigger. For example, if a prototype was delivered but the contract bills only on milestone acceptance, use `milestone-invoice`, not `prototype-delivery-invoice`.
81+
82+
## Quality Rules
83+
84+
- Use exact client-provided amounts and terms.
85+
- Keep line items specific enough for approval but not cluttered.
86+
- Tie invoices to contract, SOW, change order, or accepted milestone references when available.
87+
- Separate professional services, third-party pass-throughs, expenses, taxes, credits, and late fees.
88+
- Mark drafts as drafts if payment details or tax handling are unknown.
89+
- Do not put legal, tax, or accounting advice on invoices unless the user specifically asks for explanatory notes.
90+
- Never fabricate bank accounts, tax IDs, purchase order numbers, tax rates, or compliance status.
91+
92+
## Resource Guide
93+
94+
- `references/invoice-positioning.md`: load for agentic development service wording, line-item language, and boundaries.
95+
- `references/use-case-decision-table.md`: load when choosing which invoice to use.
96+
- `references/invoice-lifecycle.md`: load for end-to-end invoicing workflows, approval gates, and follow-up steps.
97+
- `references/invoice-catalog.md`: load for the near-exhaustive invoice template library.
98+
- `references/template-index.json`: machine-readable template metadata used by the renderer.
99+
- `scripts/render_invoice.py`: list invoice templates or render a draft with placeholders.
100+
101+
## Renderer
102+
103+
Use the renderer for repeatable invoice drafts or template discovery:
104+
105+
```bash
106+
python3 scripts/render_invoice.py --list
107+
python3 scripts/render_invoice.py --stage milestone --list
108+
python3 scripts/render_invoice.py --template pilot-deposit-invoice --var client_name=Acme --var invoice_number=INV-1001 --var amount_due=6000
109+
```
110+
111+
If a user needs a polished production invoice, use the rendered draft as a starting point and replace every placeholder with verified facts.
112+
113+
## Rendering to a Branded PDF
114+
115+
Artifacts from this skill are delivered as branded CompleteTech LLC **PDF** documents, not raw Markdown. The renderer emits the PDF (and prints the Markdown) in **one command**, using the same reportlab branding engine as the contract skill:
116+
117+
```bash
118+
pip install -r requirements.txt
119+
python3 scripts/render_invoice.py --template milestone-invoice \
120+
--out artifact.pdf --png artifact.png \
121+
--title "Invoice INV-2026-0461" --doc-type "MILESTONE INVOICE" \
122+
--meta "INVOICE NO.=INV-2026-0461" --meta "DUE=2026-06-23" --no-cover \
123+
--var client_name="Client Name" --var workflow="support triage"
124+
```
125+
126+
- `--no-pdf` emits Markdown only (the original behavior); `--no-cover` drops the cover page.
127+
- Already drafted the Markdown yourself? Render it directly: `python3 scripts/render_pdf.py --markdown artifact.md --out artifact.pdf --logo assets/logo.png --title "..."`.
128+
- The PDF supports a Markdown subset: `#`/`##`/`###` headings, paragraphs, `-` bullets, tables, `>` callouts, `**bold**`, and `[PAGE_BREAK]`. PDF requires `reportlab`; the optional `--png` preview requires `pypdfium2` and `pillow`. See `assets/examples/` for a rendered example.

0 commit comments

Comments
 (0)