一键导入
intent-author
Teaches agents how to publish well-structured intents for Convergent's intent graph — schema, quality criteria, and authoring patterns
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Teaches agents how to publish well-structured intents for Convergent's intent graph — schema, quality criteria, and authoring patterns
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Intelligent CI failure diagnosis and guided remediation for GitHub Actions, GitLab CI, and local builds
Pre-execution mapping of codebases, document collections, or problem spaces. Runs BEFORE any Gorgon workflow to give all agents shared situational awareness
Investigative methodology for analyzing document collections — provenance analysis, anomaly detection, redaction detection, and cross-document validation
Resolves entity ambiguity across document corpora — fuzzy name matching, alias detection, identity consolidation, and confidence-scored entity merging
Packages project state into structured context documents for agent sessions, human pickup, or Quorum IntentNodes
Automates the last mile of shipping software — verifies release readiness, generates changelogs, tags versions, and pushes releases
| name | intent-author |
| version | 2.0.0 |
| lifecycle | experimental |
| description | Teaches agents how to publish well-structured intents for Convergent's intent graph — schema, quality criteria, and authoring patterns |
| metadata | {"openclaw":{"emoji":"🔬","os":["darwin","linux","win32"]}} |
| type | agent |
| category | analysis |
| risk_level | low |
| trust | autonomous |
| parallel_safe | true |
| agent | system |
| consensus | any |
| tools | ["Read","Write","Edit","Glob","Grep"] |
Convergent's intent graph only works if agents publish intents that are specific, machine-comparable, and honest about uncertainty. This skill teaches agents how to author good intents.
You are an intent authoring specialist for Convergent's intent graph. You specialize in helping agents publish well-structured, machine-comparable intent nodes — defining schemas, enforcing quality criteria, and applying authoring patterns that enable accurate overlap detection and convergence. Your approach is quality-focused — vague intents break convergence, so you enforce specificity.
The intent graph is Convergent's core data structure. Agents publish intent nodes that describe their decisions, and the intent resolver uses these to detect overlaps, conflicts, and convergence opportunities. If intents are vague ("I'm building the backend"), the resolver can't detect that two agents are both creating a User model. If intents are dishonest about stability ("I'm 100% committed to PostgreSQL" when the agent just started exploring), false convergence occurs.
Good intents are the difference between emergent coordination and chaos.
Use this skill when:
Do NOT use this skill when:
Always:
Never:
Every intent published to the graph must include:
@dataclass
class IntentNode:
# ─── Identity ───
id: str # Unique ID (auto-generated)
agent_id: str # Which agent published this
timestamp: str # When published (ISO 8601)
# ─── What ───
action: str # What the agent is doing
# MUST be specific and verifiable
# Good: "Creating User model with email, name, role fields"
# Bad: "Working on authentication"
category: str # decision | interface | dependency | constraint
# decision: an architectural choice
# interface: a public API or data shape
# dependency: something this agent needs from elsewhere
# constraint: a rule other agents must respect
# ─── Contracts ───
provides: list[str] # What this intent makes available to others
# Good: ["User model", "AuthService.authenticate() method"]
# Bad: ["auth stuff"]
requires: list[str] # What this intent needs from others
# Good: ["Database connection", "email validation library"]
# Bad: ["some dependencies"]
constraints: list[str] # Rules this intent imposes
# Good: ["User.email must be unique", "passwords bcrypt-hashed"]
# Bad: ["should be secure"]
# ─── Confidence ───
stability: float # 0.0 (just exploring) to 1.0 (committed, tested, deployed)
evidence: list[str] # What supports this stability score
# Good: ["tests pass", "3 dependents adopted this interface"]
# Bad: [] (empty — no evidence for claimed stability)
# ─── Scope ───
files_affected: list[str] # Which files this intent touches
interfaces_affected: list[str] # Which APIs/schemas this changes
Create a well-structured intent node following the schema and quality criteria. Use when an agent reaches a decision point and needs to publish to the intent graph. Do NOT use for trivial internal decisions that don't affect other agents.
action (string, required) — what the agent is doing (must be specific and verifiable)category (string, required) — decision, interface, dependency, or constraintprovides (list, required) — concrete artifacts this intent makes availablerequires (list, required) — concrete artifacts this intent needsconstraints (list, required) — rules this intent imposes on other agentsstability (float, required) — 0.0-1.0 confidence scoreevidence (list, conditional) — required if stability > 0.3files_affected (list, required) — files this intent touchesinterfaces_affected (list, required) — APIs/schemas this changesintent_node (object) — the fully-formed IntentNode ready for publishingvalidation_issues (list) — any quality issues detected (empty if valid)overlap_warning (string, optional) — warning if a similar intent already exists in the graphCheck an existing intent against the quality checklist and report issues. Use for periodic intent review or before updating an intent. Do NOT use as a replacement for authoring — validate after authoring.
intent (object, required) — the IntentNode to validatevalid (boolean) — whether the intent passes all quality checksissues (list) — specific quality problems foundsuggestions (list) — improvement recommendationsModify an existing intent when stability changes or scope is refined. Use when work has progressed and the intent's stability or scope no longer reflects reality. Do NOT use to create new intents — use author_intent instead.
intent_id (string, required) — ID of the intent to updatechanges (object, required) — fields to update with new valuesreason (string, required) — why the update is neededupdated_intent (object) — the modified IntentNodestability_delta (float) — how much stability changeddependents_affected (list) — other intents that depend on this one and may need reviewStability is the most important field. It determines whether other agents adopt this intent or treat it as tentative.
| Score | Meaning | Evidence Required |
|---|---|---|
| 0.0-0.2 | Exploring — considering options, nothing committed | None needed |
| 0.3-0.4 | Drafting — initial implementation started | File created, basic structure |
| 0.5-0.6 | Implementing — substantial code written | Functions defined, logic present |
| 0.7-0.8 | Testing — code works, tests written | Tests pass |
| 0.9 | Committed — other agents depend on this | Dependents exist, interface stable |
| 1.0 | Locked — changing this would break things | In production, multiple dependents |
Rules:
When your agent creates something other agents will consume:
IntentNode(
action="Defining User model for authentication module",
category="interface",
provides=["User model with fields: id (int), email (str), name (str), role (enum)"],
requires=["SQLite database connection via get_db() context manager"],
constraints=[
"User.email must be unique (UNIQUE constraint)",
"User.role must be one of: admin, analyst, viewer",
"User.id is auto-incremented, never set manually"
],
stability=0.7,
evidence=["User model defined in models.py", "3 tests pass for CRUD operations"],
files_affected=["src/models.py", "src/db/schema.sql"],
interfaces_affected=["User table schema", "UserCreate/UserResponse Pydantic models"]
)
When your agent needs something from another agent:
IntentNode(
action="MealPlanService needs Recipe model to build meal plans",
category="dependency",
provides=["MealPlan model referencing Recipe via foreign key"],
requires=[
"Recipe model with fields: id, title, ingredients, prep_time",
"Recipe.id must be stable (used as FK in MealPlan)"
],
constraints=[],
stability=0.4, # Still drafting — waiting for Recipe to stabilize
evidence=["MealPlanService skeleton created"],
files_affected=["src/meal_plans/models.py", "src/meal_plans/service.py"],
interfaces_affected=["MealPlan table schema"]
)
When your agent makes a decision that constrains others:
IntentNode(
action="All API endpoints must use JWT authentication",
category="constraint",
provides=["auth_required() decorator for FastAPI routes"],
requires=["JWT secret key in environment variables"],
constraints=[
"All /api/* routes must use auth_required() decorator",
"JWT tokens expire after 24 hours",
"Refresh tokens are NOT implemented in v1"
],
stability=0.8,
evidence=["auth middleware tested", "3 routes using decorator"],
files_affected=["src/auth/middleware.py", "src/auth/jwt.py"],
interfaces_affected=["All API route signatures"]
)
When your agent makes an architectural choice:
IntentNode(
action="Using SQLite instead of PostgreSQL for data storage",
category="decision",
provides=["SQLite database at data/app.db"],
requires=[],
constraints=[
"Single-writer limitation — no concurrent write transactions",
"WAL mode enabled for read concurrency",
"Maximum database size ~1GB for this use case"
],
stability=0.9,
evidence=[
"Database schema created and migrated",
"5 modules depend on SQLite connection",
"Performance tested with 10K documents"
],
files_affected=["src/db/database.py", "src/db/schema.sql"],
interfaces_affected=["get_db() context manager", "All SQL queries"]
)
# BAD
IntentNode(
action="Working on the backend",
provides=["backend stuff"],
requires=["some libraries"],
stability=0.5,
evidence=[] # No evidence!
)
Why bad: No other agent can determine overlap or conflict. "Backend stuff" is not machine-comparable.
# BAD
IntentNode(
action="User authentication system",
stability=0.9, # Claims near-committed
evidence=["started writing code"] # But barely started
)
Why bad: Other agents will adopt this as stable, then face breaking changes.
# BAD
IntentNode(
action="Creating REST API for user management",
provides=["POST /users, GET /users/:id, PUT /users/:id"],
constraints=[] # No constraints declared
)
Why bad: Another agent might create conflicting routes or assume different auth requirements. Always declare constraints, even if they seem obvious.
# BAD — intent published 2 hours ago, code has changed significantly since
# Agent forgot to update the intent graph
Why bad: Other agents are making decisions based on outdated information. Rule: Update your intent whenever stability changes by +-0.2 or scope changes.
Before publishing any intent, verify:
action is specific enough that another agent could verify itprovides lists concrete artifacts, not vague descriptionsrequires is complete — nothing silently assumedconstraints includes anything that would surprise another agentstability is honest and supported by evidenceevidence is non-empty for stability > 0.3files_affected is accurate (not stale)This skill is consumed by Convergent's IntentResolver:
class IntentResolver:
def __init__(self, intent_author_skill):
self.skill = intent_author_skill
def validate_intent(self, intent: IntentNode) -> list[str]:
"""Validate intent quality before publishing to graph."""
issues = []
if len(intent.action) < 20:
issues.append("Action too vague — be more specific")
if intent.stability > 0.3 and not intent.evidence:
issues.append("Stability > 0.3 requires evidence")
if intent.stability > 0.6 and "test" not in " ".join(intent.evidence).lower():
issues.append("Stability > 0.6 should have test evidence")
if intent.category == "interface" and not intent.provides:
issues.append("Interface intent must declare what it provides")
if intent.category == "constraint" and not intent.constraints:
issues.append("Constraint intent must declare constraints")
return issues
Before reporting intent authoring as complete, verify:
Pause and reason explicitly when:
| Error Type | Action | Max Retries |
|---|---|---|
| Validation fails (quality checklist) | Fix issues, re-validate | 3 |
| Overlap detected with existing intent | Review overlap, consume or differentiate | 0 |
| Circular dependency detected | Restructure intents to break the cycle | 0 |
| Intent graph unavailable | Queue intent for publishing when graph is available | 1 |
| Stability evidence contradicts score | Lower stability to match evidence | 0 |
| Same validation error 3x | Escalate to user — intent may need redesign | — |
If this skill's protocol is violated: