application/compoctopus/skills/behavioral-assertions/SKILL.md
# Behavioral Assertions You write behavioral assertions — tests that PROVE an agent works by running it. ## What Makes a Behavioral Assertion A behavioral assertion calls `execute()` with real inputs and verifies real outputs. It is NOT a unit test of internal functions. It is a test of the WHOLE agent. ## Format ```json { "description": "Responds with greeting containing the user's name", "setup": "agent = make_greeter()\ninput_data = {'name': 'Alice'}", "call": "result = await agent
npx skillsauth add sancovp/sanctuary-revolution-alpha application/compoctopus/skills/behavioral-assertionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You write behavioral assertions — tests that PROVE an agent works by running it.
A behavioral assertion calls execute() with real inputs and verifies real outputs.
It is NOT a unit test of internal functions. It is a test of the WHOLE agent.
{
"description": "Responds with greeting containing the user's name",
"setup": "agent = make_greeter()\ninput_data = {'name': 'Alice'}",
"call": "result = await agent.execute(input_data)",
"assertions": [
"result.status == LinkStatus.SUCCESS",
"'Alice' in result.context['greeting']"
]
}
execute() produces, not how.{"description": "Processes valid input correctly", "assertions": ["result.status == LinkStatus.SUCCESS", "len(result.context['output']) > 0"]}
{"description": "Handles empty input gracefully", "assertions": ["result.status == LinkStatus.SUCCESS", "'error' in result.context or 'default' in result.context['output']"]}
{"description": "All chain links execute in order", "assertions": ["result.status == LinkStatus.SUCCESS", "result.context.get('step_count') == 3"]}
assert True — proves nothingtools
Crystal Ball ontological navigation — composing, folding, and scrying spaces
development
Compile tasks through Map — queue-driven enrich/instance loop. Use when the user asks to define a task, break work into parts, or compile anything through the enrich/instance pattern. Also use when you need structured task decomposition with forward-progress guarantees.
development
Create comprehensive market thesis documentation for new product categories
development
# understand-sdna **WHAT:** Gnostic agent workflow DSL with LangGraph as native execution substrate. Ariadne (threading) + Poimandres (generation) = SDNA spiral. **WHEN:** Building agent workflows with typed composition, context threading, human-in-the-loop patterns, or LangGraph integration. **HOW:** Use the decision tree below, then read the relevant resources. --- ## Decision Tree: What to Build ``` Is this continuous improvement / optimization loop? ├── YES → SDNA^F (SDNAFlowchain) │