Changed
- Prerelease publishing is now first-class — tag-mode release validation accepts matching prerelease tags such as
v3.1.0a0, GitHub Releases are marked as prereleases automatically for those tags, and maintainer docs now document the end-to-end prerelease PyPI/GitHub publish path. - Rebased doctrine-stack work onto
main's execution architecture — carry forward the doctrine, constitution, and template-repository work from PR #305 into PR #348 while preservingmain's context, ownership, event-log, merge-engine, and shim foundations instead of reviving deleted subsystems. - Kernel established as the shared dependency floor —
src/kernel/now owns shared path, atomic-write, and glossary-boundary primitives; doctrine no longer reaches back intospecify_cli, and the package boundary is documented by ADRs and enforced by architectural tests. - Constitution now acts as the local routing layer for governance assets — project-local mission path construction flows through
ProjectMissionPaths, while doctrine-backed mission/template access is routed throughMissionTemplateRepositoryand constitution-facing resolvers instead of scattered path assembly. - Mission terminology split clarified as the architectural answer to issue #241 — a direct
--feature→--missionrename would have collided with the existing mission-type concept, so the branch now separatesmission type(--mission-type) frommission run(--mission-run) and keeps legacy--featurecompatibility where required during the deprecation window. - CI flows extended for the new package layout — quality workflows now cover doctrine and kernel explicitly, including dedicated kernel coverage enforcement and updated readiness/release paths.
- Fork-safe SonarCloud targeting via repository variables — CI now resolves SonarCloud settings from
SONAR_ORGANIZATION,SONAR_PROJECT_KEY, and optionalSONAR_HOST_URL, with upstream-safe defaults and a fallback project-key convention of<organization>_<repo-name>whenSONAR_PROJECT_KEYis unset.
Fixed
- Dashboard loading regressions on shared mission installs — repaired the shared dashboard JavaScript syntax error, made feature scanning tolerate unreadable legacy event logs, hardened
/api/featureserror handling, and marked the scanner regressions as part of thefastsuite so CI/Sonar coverage reflects the new branches. - Narrow exception handlers in doctrine repositories — Replace 21 bare
except Exceptionhandlers acrosssrc/doctrine/with specific exception tuples (YAMLError,ValidationError,OSError,ModuleNotFoundError,TypeError,UnicodeDecodeError) matching actual failure modes. Addresses PR #305 review finding M1. - Fix
spec-kitty --helpcrash — Add missingOptionalimport toworkflow.pyandtasks.py.from __future__ import annotationsdefers annotation evaluation; Typer'seval()ofOptional[str]annotations raisedNameErrorat app construction time. - Address PR #305 architectural review gaps in the rebased branch — resolve the core review findings by removing doctrine→
specify_clidependency leakage, bringing doctrine into CI coverage, lifting shared glossary/path primitives into kernel, and documenting the resulting boundary in the architecture corpus.
Documentation
- Doctrine inclusion assessment —
docs/development/doctrine-inclusion-assessment.mdevaluates the current state of the three Doctrine+Kitty merger pillars (agent profiles ~80%, mission type customization ~45%, ad-hoc experimentation ~25%) with gap analysis, dependency violation status, and phased recommendations. - Doctrine skills README —
src/doctrine/skills/README.mddocuments the skills-vs-mission-composition boundary, the iterative context loading pattern, and the skill inventory. Captures the architectural distinction from the PR #305 review. - Updated skill: spec-kitty-runtime-next — new "Doctrine-Aware Step Execution" section teaches agents to load agent profiles at init, apply action-scoped constitution context at step boundaries, and pull specific tactics/directives on demand instead of dumping all doctrine upfront.
- Updated skill: spec-kitty-constitution-doctrine — new "Programmatic Doctrine Access", "Doctrine Artifact Kinds", and "Iterative Context Loading Pattern" sections document
DoctrineServiceentry points, explain all 8 artifact kinds (directives, tactics, paradigms, styleguides, toolguides, procedures, agent profiles, step contracts) with access patterns, and teach the anti-pattern of upfront context dumps. - Updated skill: spec-kitty-mission-system — new "Doctrine Composition Layer" section documents
MissionStepContract,Procedure, and action index artifacts as the structured primitives backing mission behavior. - New skill: ad-hoc-profile-load — teaches agents how to load a profile on demand for interactive sessions outside the mission loop: resolve by ID or task context, adopt identity/boundaries/governance scope, maintain role throughout the session, and persist to tool context.
- Recorded the remaining follow-on work after the PR #305 -> PR #348 transition — the compiler-backed mission-bundle follow-up remains relevant, the skills-vs-mission-composition boundary still needs to stay explicit, constitution-local routing should expand beyond mission-path centralization, issue #241 still has compatibility/documentation cleanup left on older
--feature-based surfaces, and residual runtime/test debt remains outside this rebase-focused integration.