Context
Python developers eventually need a safe @when/@action authoring API that compiles to the same SkillPackage contract as YAML.
Scope
Non-Goals
- Does not execute skills locally.
- Does not bypass YAML-equivalent validation.
- Does not become required for bundled skills.
Technical Specification
@when(..., tier=...) requires explicit tier. Tier D implies bypass LLM in generated package. Tier C requires safe_default_action.
Acceptance Criteria
Tests Required
| Test |
Verifies |
test_agent_compile_to_skill_package |
Decorators compile to typed package. |
test_when_requires_tier |
No implicit tier. |
test_tier_c_requires_safe_default |
Approval safety invariant. |
Additional Test Coverage / Edge Cases
Invariants — Do Not Violate
- Every trigger must declare
action_tier.
- Tier C requires safe default.
- Tier D bypasses LLM.
Dependencies
Blocked by:
Unblocks:
Contract References
- P2-13 decorator authoring reference
ori-specs/skill-package/v1.md
Priority
post-poc
Suggested Labels
blocked, post-poc
Context
Python developers eventually need a safe
@when/@actionauthoring API that compiles to the sameSkillPackagecontract as YAML.Scope
ori_sdk/decorators.py.Agent,@when,@action, andAgent.compile().SkillPackage.Non-Goals
Technical Specification
@when(..., tier=...)requires explicit tier. Tier D implies bypass LLM in generated package. Tier C requiressafe_default_action.Acceptance Criteria
SkillPackage.pytest,mypy, andruffpass.Tests Required
test_agent_compile_to_skill_packagetest_when_requires_tiertest_tier_c_requires_safe_defaultAdditional Test Coverage / Edge Cases
@whenwithout explicit tier.safe_default_action.Invariants — Do Not Violate
action_tier.Dependencies
Blocked by:
Unblocks:
Contract References
ori-specs/skill-package/v1.mdPriority
post-pocSuggested Labels
blocked,post-poc