contract-template
使用Accord Project框架创建可机读的智能合约模板,嵌入逻辑实现自动化执行
npx skills add claude-office-skills/skills --skill contract-templateBefore / After 效果对比
1 组律师起草合约耗时,条款不一致,执行需要人工判断
模板化快速生成,条款一致,条件触发自动执行
description SKILL.md
contract-template
Contract Template Skill
Overview
This skill enables creation of smart contract templates using Accord Project - an open-source framework for legally enforceable, machine-readable contracts. Create templates with embedded logic that can automate contract execution.
How to Use
-
Describe the contract type and terms
-
Specify variables and logic rules
-
I'll generate Accord Project template
Example prompts:
-
"Create an NDA template with variable terms"
-
"Build a service agreement with payment milestones"
-
"Generate a rental agreement template"
-
"Design a consulting contract with termination clauses"
Domain Knowledge
Template Structure
contract-template/
├── package.json # Metadata
├── grammar/
│ └── template.tem.md # Natural language template
├── model/
│ └── model.cto # Data model
├── logic/
│ └── logic.ergo # Business logic
└── text/
└── sample.md # Sample contract
Template Syntax (TemplateMark)
# Service Agreement
This Agreement is made between [{supplier}] ("Supplier")
and [{buyer}] ("Buyer").
## Services
The Supplier agrees to provide [{serviceDescription}].
## Payment
The Buyer shall pay [{paymentAmount}] within
[{paymentDays}] days of invoice.
## Term
This Agreement begins on [{startDate as "MMMM DD, YYYY"}]
and continues for [{termMonths}] months.
{{#if latePenalty}}
## Late Payment
A penalty of [{penaltyPercent}]% applies to late payments.
{{/if}}
Data Model (Concerto)
namespace org.example.service
import org.accordproject.time.*
asset ServiceAgreement extends Contract {
o String supplier
o String buyer
o String serviceDescription
o Double paymentAmount
o Integer paymentDays
o DateTime startDate
o Integer termMonths
o Boolean latePenalty optional
o Double penaltyPercent optional
}
transaction PaymentRequest {
o Double amount
o DateTime dueDate
}
transaction PaymentResponse {
o Double amount
o Double penalty
o DateTime paymentDue
}
Business Logic (Ergo)
namespace org.example.service
import org.accordproject.time.*
contract ServiceContract over ServiceAgreement {
clause payment(request : PaymentRequest) : PaymentResponse {
let dueDate = addDuration(request.dueDate,
Duration{ amount: contract.paymentDays, unit: ~org.accordproject.time.TemporalUnit.days });
let penalty =
if contract.latePenalty
then request.amount * contract.penaltyPercent / 100.0
else 0.0;
return PaymentResponse{
amount: request.amount,
penalty: penalty,
paymentDue: dueDate
}
}
}
Using Cicero CLI
# Install
npm install -g @accordproject/cicero-cli
# Parse contract
cicero parse --template ./contract-template --sample ./text/sample.md
# Execute logic
cicero trigger --template ./contract-template \
--sample ./text/sample.md \
--request ./request.json
# Draft new contract
cicero draft --template ./contract-template --data ./data.json
Example: NDA Template
template.tem.md
# Non-Disclosure Agreement
This Non-Disclosure Agreement ("Agreement") is entered into
as of [{effectiveDate as "MMMM DD, YYYY"}] by and between:
**Disclosing Party:** [{disclosingParty}]
**Receiving Party:** [{receivingParty}]
## 1. Confidential Information
"Confidential Information" means all non-public information
disclosed by the Disclosing Party, including but not limited to:
[{confidentialScope}].
## 2. Obligations
The Receiving Party agrees to:
- Maintain confidentiality for [{termYears}] years
- Use information only for [{permittedPurpose}]
- Not disclose to third parties without written consent
## 3. Exclusions
This Agreement does not apply to information that:
{{#if hasExclusions}}
[{exclusions}]
{{else}}
- Is or becomes publicly available
- Was known prior to disclosure
- Is independently developed
{{/if}}
## 4. Return of Materials
Upon termination, the Receiving Party shall return or destroy
all Confidential Information within [{returnDays}] days.
## 5. Remedies
{{#if monetaryPenalty}}
Breach of this Agreement shall result in liquidated damages
of [{penaltyAmount}].
{{else}}
The Disclosing Party shall be entitled to seek injunctive relief.
{{/if}}
**SIGNATURES**
Disclosing Party: ____________________
Date: ____________________
Receiving Party: ____________________
Date: ____________________
data.json
{
"effectiveDate": "2024-01-15",
"disclosingParty": "Tech Corp",
"receivingParty": "Consultant LLC",
"confidentialScope": "trade secrets, customer lists, and technical specifications",
"termYears": 3,
"permittedPurpose": "evaluating a potential business relationship",
"hasExclusions": false,
"returnDays": 30,
"monetaryPenalty": true,
"penaltyAmount": "$50,000"
}
Resources
Weekly Installs208Repositoryclaude-office-s…s/skillsGitHub Stars16First Seen10 days agoSecurity AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled onclaude-code159opencode94github-copilot93kimi-cli91amp91cline91
forum用户评价 (0)
发表评价
暂无评价,来写第一条吧
统计数据
用户评分
为此 Skill 评分