Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 168 additions & 0 deletions .book-release-canvas.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
{
"schemaVersion": 1,
"repository": {
"name": "GitHub Agentic Workflows book"
},
"publication": {
"name": "GitHub Agentic Workflows: An Interactive Book",
"promise": "Every published claim stays traceable to current product documentation and verified examples.",
"contentVersionPath": "content/VERSION",
"frameworkVersionPath": "content/FRAMEWORK_VERSION",
"chapterPath": "content/chapters",
"examplePath": "examples"
},
"sources": [
{
"id": "upstream-product",
"label": "Official product docs and releases",
"owner": "gh-aw-explorer",
"url": "https://github.com/github/gh-aw",
"paths": [
"content/research/updates/{frameworkVersion}"
],
"evidence": "content/research/updates/{frameworkVersion}/framework-delta.md",
"why": "Defines what changed in the product and which claims may now be stale."
},
{
"id": "manuscript",
"label": "Book manuscript",
"owner": "chapter-author",
"paths": [
"content/chapters",
"content/toc.yml"
],
"evidence": "content/release-review.json",
"why": "Reader-facing explanations must match the fixed framework target."
},
{
"id": "examples",
"label": "Runnable examples",
"owner": "code-verifier",
"paths": [
"examples",
"scripts/verify_examples.py"
],
"evidence": "content/research/updates/{frameworkVersion}/final-verification-receipt.json",
"why": "Copyable workflows must compile before the edition can ship."
},
{
"id": "presentation",
"label": "Interactive book experience",
"owner": "frontend-builder",
"paths": [
"site",
"assets"
],
"ignorePaths": [
"site/release-canvas.html",
"site/book.html",
"site/llms-full.txt",
"site/sitemap.xml"
],
"evidence": "site/index.html",
"why": "Accepted content must reach the book, PDF, and discovery surfaces."
}
],
"demos": [
{
"id": "source-drift",
"label": "Source drift to chapter impact",
"owner": "gh-aw-explorer",
"paths": [
"content/research/updates/{frameworkVersion}/framework-delta.md",
"content/chapters"
],
"evidence": "content/research/updates/{frameworkVersion}/framework-delta.md",
"cue": "Open one changed source and show the exact chapter decision it triggered."
},
{
"id": "strict-compile",
"label": "Strict example compilation",
"owner": "code-verifier",
"paths": [
"examples",
"scripts/verify_examples.py"
],
"evidence": "content/research/updates/{frameworkVersion}/final-verification-receipt.json",
"cue": "Show the pinned compiler version and the complete workflow pass count."
},
{
"id": "human-release-gate",
"label": "Human release decision",
"owner": "chapter-reviewer",
"paths": [
"content/chapters",
"content/release-review.json"
],
"evidence": "content/release-review.json",
"cue": "Show that automation prepares evidence, but ACCEPT remains an explicit review gate."
}
],
"gates": [
{
"id": "framework-pin",
"label": "Framework target is pinned",
"kind": "text-equals",
"path": "content/FRAMEWORK_VERSION",
"equals": "v0.88.7"
},
{
"id": "strict-verification",
"label": "Whole example corpus passed",
"kind": "json-field",
"path": "content/research/updates/{frameworkVersion}/final-verification-receipt.json",
"field": "status",
"equals": "PASS"
},
{
"id": "editorial-review",
"label": "Editorial review accepted",
"kind": "json-field",
"path": "content/release-review.json",
"field": "verdict",
"equals": "ACCEPT"
},
{
"id": "published-site",
"label": "Generated book is present",
"kind": "file-exists",
"path": "site/index.html"
}
],
"agents": [
{
"name": "Research",
"role": "Find the exact upstream change and map its impact."
},
{
"name": "Author",
"role": "Update only the affected explanation and example."
},
{
"name": "Verifier",
"role": "Compile every example against the pinned product release."
},
{
"name": "Reviewer",
"role": "Hold the human-quality gate before publication."
}
],
"rubric": [
{
"criterion": "GitHub-native enterprise context",
"proof": "The canvas reads versions, git changes, workflows, examples, reviews, and release evidence from the repository."
},
{
"criterion": "Multi-agent collaboration",
"proof": "Research, authoring, verification, review, and integration have explicit owners and hand-offs."
},
{
"criterion": "Governance and human review",
"proof": "Pinned sources, strict compilation, source-bound review, and an explicit final release decision."
},
{
"criterion": "Customer repeatability",
"proof": "Fork the repo, edit one JSON configuration file, and reuse the same canvas for another documentation-led publication."
}
]
}
39 changes: 39 additions & 0 deletions .github/extensions/release-book-canvas/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Book release canvas

This project-scoped Copilot extension turns repository evidence into a release-control Canvas for documentation-led publications.

## Open it

After the extension is loaded, ask Copilot to open the **Book release canvas**, or call the canvas with:

```text
canvasId: book-release-canvas
instanceId: book-release
```

The default configuration is `.book-release-canvas.json`. An alternate repo-relative file can be passed as `configPath` when opening the Canvas.

## Reuse it

Copy the extension directory and `.book-release-canvas.json` into another repository. Configure:

- publication version and content paths;
- documentation source areas and their evidence;
- demo dependencies and proof artifacts;
- release gates;
- agent roles; and
- the challenge/business proof displayed in the Canvas.

All configured paths are constrained to the repository. The extension binds its server to loopback only, requests no secret, and stores human demo decisions under the user's Copilot extension artifacts instead of editing committed evidence.

## Actions

- `refresh_release` — rescan git and configured evidence.
- `get_release_snapshot` — return the complete structured state.
- `set_demo_status` — persist a human `ready`, `needs-refresh`, or `blocked` decision.

## Test

```powershell
npm run test:canvas
```
Loading
Loading