Skill publish gate — check + freeze + smoke with a pass/fail receipt.
Orrery publish oracle (epic #962 / issue #976): a skill may publish only when
app.check()contracts, freeze-time manifest digests, and the smoke harness
all pass. This module orchestrates the three stages and always runs all three
so the receipt reports every stage; any failure blocks publish.
No registry upload lives here (E5).
skill.publish
| Name | Type | Default | Description |
|---|---|---|---|
type
|
|
— | |
qualified_name
|
|
— | |
element_type
|
|
— | |
description
|
|
— | |
source_file
|
|
— | |
line_number
|
|
— | |
is_autodoc
|
|
— | |
autodoc_element
|
|
— | |
_autodoc_template
|
|
— | |
_autodoc_url_path
|
|
— | |
_autodoc_page_type
|
|
— | |
title
|
|
— | |
doc_content_hash
|
|
— |
Symbols on this page
Outcome of one publish-gate stage.
Legible pass/fail receipt forchirp skill publish / run_publish_gate().
Human-readable multi-stage publish receipt for the terminal.
Run check → freeze → smoke and return a receipt.
All three stages always execute so the receipt is complete. Publish is blocked when…
StageResult
class
Outcome of one publish-gate stage.
PublishReceipt
class
Legible pass/fail receipt forchirp skill publish / run_publish_gate().
format_publish_receipt
function
def format_publish_receipt(receipt: PublishReceipt) -> str
Human-readable multi-stage publish receipt for the terminal.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
receipt
|
PublishReceipt
|
— |
run_publish_gate
function
def run_publish_gate(app: Any, corpus: Sequence[CorpusPrompt], *, answer_fn: AnswerFn | None = None, warnings_as_errors: bool = False) -> PublishReceipt
Run check → freeze → smoke and return a receipt.
All three stages always execute so the receipt is complete. Publish is
blocked when any stage fails (receipt.passedis False).
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
app
|
Any
|
— | |
corpus
|
Sequence[CorpusPrompt]
|
— | |
answer_fn
|
AnswerFn | None
|
None
|
|
warnings_as_errors
|
bool
|
False
|
View source · /home/runner/work/chirp/chirp/site/../src/chirp/skill/publish.py:1