Changelog
This unified documentation records the current Runtime workflow and earlier local-canon history. Products publish independently on GitHub Releases. Quality Platform remains private access; the Quality Harness role package is distributed with the other public role products.
0.1.0-alpha.49.2
A security patch on top of 0.1.0-alpha.49.1 (release notes and security advisory). Update now: in 0.1.0-alpha.48 to alpha.49.1, a repository's Claude Code settings could approve Praxis's protected actions by themselves.
- One approval channel: protected actions (commits, pushes, merge requests, Jira writes, writing
.project, confirming Stories and decisions, recording review decisions) are approved only in the client's own dialog. A dialog answer is recorded as a client response (personVerified: false), never as proof that a person approved. See Approvals - Claude Desktop: in Chat, Cowork and the Code tab, protected actions are not executed. Claude shows the exact preview and says it was not applied; nobody is said to have rejected it. Reading, previews, reviews and the rest of the work keep working. Apply protected actions from the Claude Code CLI in a terminal, in the same repository
- Review pages: Save is now Send for approval. It records nothing by itself; the client's dialog then shows exactly the decisions and remarks being recorded
- Refused configuration: Praxis refuses protected actions when it sees an
Elicitationhook that would answer the dialog, a client started with settings, plugins or agents on its command line, a client environment that points it at more configuration or loads code into it, or a repository whose own Claude Code settings do more than plain preferences.praxis_doctornames the file, flag or variable (Security model) - Removed: Trusted Client and host-permission modes, the
planTextargument (still accepted, ignored), and the Desktop extension's Approval mode setting - Doctor:
approval.modeisclient-uiorno-dialog; newapproval.trust,approval.dialogAutomationandapproval.ignoredEnvironment. New toolpraxis_approval_journal(62 tools) - The Quality service refuses requests from web pages;
praxis_approval_planrefuses a plan request for one repository that names another - Update:
claude plugin marketplace update praxis, thenclaude plugin updateforpraxisand for each installed plugin (update). Desktop Chat: install the newpraxis-runtime.mcpb - Verified with Claude Code CLI 2.1.314 against the published marketplace: a clean install, a single role with its Runtime, and the in-place update from alpha.49.1. Not verified: the Claude UI flow, the real Desktop Chat and Cowork interfaces, and a person answering the dialog
0.1.0-alpha.49.1
A patch on top of 0.1.0-alpha.49 (release notes) with prototype improvements only:
- Conversation prototypes: a chat, message feed or journal is prototyped as messages: outgoing on the right and incoming on the left, authors and avatars, times, day separators, attachments and a mock voice player. Filters, search, tabs and the record card work as on a table
- Custom prototype parts: a pattern no element represents (a board, a calendar, a map-like layout) is written as HTML, CSS and script in a sandboxed frame. The frame has no network, no access to the review page and no navigation. The review page says that Praxis does not check its behaviour
- Only what was asked changes: BA changes the element the user asked to change and keeps the rest of the screen. A requested pattern is never shown as a table, and what cannot be shown is said before the review
- Offline review copies carry the same content security policy as the served page
- Update:
claude plugin marketplace update praxis, thenclaude plugin updateforpraxisand for each installed plugin;praxis@praxisalone does not update the Runtime and roles (update). Desktop Chat: install the newpraxis-runtime.mcpb - Verified with Claude Code CLI 2.1.314 against the published marketplace: a clean install, each role alone, and the in-place update from alpha.49. Not verified: the Claude UI flow, Desktop Chat with this build, Desktop Code and Cowork
0.1.0-alpha.48
- Install from Claude: Customize → Plugins → Add marketplace →
dfg-inc/praxis-marketplace→ Praxis → Add. Thepraxisplugin installs Runtime, BA, Architect, Developer and Quality; a single role installs the Runtime with it. Claude Desktop Chat still uses the separatepraxis-runtime.mcpb. See installation and client compatibility - Approvals: Action → Preview → Approval → Execute → Result. Approval Required (default: the client's dialog, or an immediate
APPROVAL_CLIENT_UI_REQUIREDwith the preview when the client has none) and the explicit opt-in Trusted Client mode (labelledtrusted-client, never reported as your confirmation; it does not cover confirming Stories or decisions or approving a service). Trusted Client was removed in 0.1.0-alpha.49.2. See Approvals APPROVAL_TIMED_OUT,approval.clientevidence inpraxis_doctorand a local diagnostics log (~/.praxis/diagnostics/mcp.jsonl); the decision journal lives outside the repository. See Diagnostics- Runtime reference: 52 tools (tools catalog); both MCP protocol eras handle approvals
- Local-first: project init, BA, Architect, Developer and Quality workflows need no Jira (use Praxis)
- New sections: Use Praxis (scenarios) and Technical
- Update from earlier alphas:
claude plugin marketplace update praxis, thenclaude plugin update praxis@praxis; for Desktop Chat install the new MCPB over the old one (update) - Not yet verified: the Claude UI flow, Desktop Chat with this build, Desktop Code and Cowork
0.1.0-alpha.45 – 0.1.0-alpha.47
Summarised together because products release independently:
- alpha.45: first public GitHub Releases under
dfg-inc(Runtime MCPB and the four role ZIPs, each withrelease-meta.json) - A Jira-independent workflow contract for shared requirements and handoffs, user stories, and persisted local workflows (alpha.45–alpha.47)
- Quality executes the implementation across repositories instead of trusting a caller-supplied behavior label; a service-level verdict is recorded beside each feature story verdict
- The no-Jira workflow is proved through the MCP tools, including a defective import that must fail; numeric MCP arguments are validated
- Every Praxis repository released at alpha.47
0.1.0-alpha.44
- Complete GitHub Delivery: local
masterpublishes to GitHubmainwith an explicit refspec (<SHA>:refs/heads/main); empty UI-created repos are supported; remotemasteris not created - Feature commit stays on the Quality snapshot allowlist; hashes are re-read from the created Git commit
- Pull Request base is published
main, never localmaster; retries do not duplicate commits or PRs - CI PASS only for completed GitHub Actions success; missing workflows report
not_configured - One copy-paste walkthrough: GitHub Delivery
0.1.0-alpha.43
- Connect Git updates
originwhen switching HTTPS ↔ SSH for the same GitHub repository (git remote set-url). Same repository identity is no longer treated as “already connected” wrote=trueonly after the actual remote URL matches the approved plan; apply keeps the approvedpreviewFingerprint- Git Status copies GitHub API
emptyontoremoteEmptyandbaselineRequired; API failure stays unknown (null), notfalse - Doctor rejects a git remote pasted into
github_api_url
0.1.0-alpha.42
- Developer Git Delivery: GitHub Pull Request MVP (status, connect, snapshot-bound commit, baseline/feature push, PR)
- GitLab remotes and Merge Requests remain supported; GitHub live Desktop delivery is a separate manual gate
- Git tokens use Runtime
user_config(github_token, optionalgitlab_token); never chat or.project
0.1.0-alpha.41
- Developer status reads canonical
qualityStatefrompraxis.stateand the local WP manifest, notstatus=ready-for-qa praxis.workPackageManifestis a membership/claim snapshot and does not override Quality approval- Read-only
praxis_quality_apply_statusandpraxis_quality_review_show; Quality worker exit is recorded by the Runtime supervisor
0.1.0-alpha.40
- Quality Apply binds Jira status and the approved numeric transition in the preview fingerprint
- Fresh Apply rejects Jira drift before the first write; retries resume from the apply journal
qualityState=approvedis written only after the approved transition; MCP envelopeokfollowsdata.ok
0.1.0-alpha.39
- Quality Review uses the bundled Quality HTTP Service, executes change-spec acceptance checks, and persists QA evidence / SQLite reviews
- Review does not write Jira; Quality Apply Preview + human-gated Quality Apply perform Jira approval, Done, and Bugs
- Local WP
qualityStateis reconciled on apply; retries are idempotent
0.1.0-alpha.38
- Quality starts inside the Claude Desktop Runtime when the Desktop executable is not a Node CLI (no user-installed Node)
- Spawn failures wait for the real
error/exitevents instead of reporting only “did not return a pid” - Packaged sql.js WASM from alpha.37 remains the SQLite fallback
0.1.0-alpha.37
- Quality starts from the installed Runtime MCPB without a user-installed Node or SQLite
- Desktop
node:sqlitepreflight no longer blocks ensure, and no longer maps every load error to “requires Node.js 22+” - Packaged sql.js WASM is the SQLite fallback when the Desktop child has no
node:sqlite - Startup errors include
stage,nodeVersion,nodeExecutable,moduleLoadErrorCode,exitCode,durationMs,logPath
0.1.0-alpha.36
- Quality HTTP service is bundled in the Runtime MCPB (
server/praxis-quality.cjs) praxis_quality_ensureactually starts the service, waits for health, and creates.praxis-quality/- Structured startup errors replace generic
WORKFLOW_BLOCKED - User documentation is English-only (Marketplace method pages may still have a Russian locale)
0.1.0-alpha.35
- Developer complete no longer maps to Jira Done
- Real verification evidence + Developer→Quality handoff
- Human-gated recovery for premature Done
- This documentation portal (VitePress) sharing Markdown with Marketplace
0.1.0-alpha.34
- Localized Jira transition discovery (numeric ids)
- Defect: Developer complete could still mark Done — fixed in .35
0.1.0-alpha.33
- Hard Work Package scope; invalid title
---
0.1.0-alpha.32
- Preview performance / timeout budget
0.1.0-alpha.31
- Shared Runtime MCPB + secure
user_config
0.1.0-alpha.30
- Official MCP stdio (
serveStdio)
Earlier local-canon documentation
0.1.0-alpha.20
- English operator manual: installation surfaces, connected sessions, all 70 role skills, handoffs, CLI/Runtime reference, and recovery
- Source-pinned provenance and public-boundary checks for every generated page
0.1.0-alpha.19
- Standalone BA and Developer export artifacts
- Quality governance plus Developer and Architect package acceptance
- Catalog versions aligned with the unified release
0.1.0 — Phase 1 pre-rollout
- praxis-ba — canon-graph engine, handoff emit, rename complete
- praxis-architect —
build-architecture-package(requires--change-spec) - praxis-developer —
run-work-package+ final-arbiter + repair - Quality Platform — private merge controls and scheduled baseline evaluation
- Catalog and documentation production build
- Connected sample flow from BA to Quality evidence