dotCMS / dotCMS/core

CAEM: stale Spec-Kit plan-template Constitution Check + missing ADR-context tooling

Open
#37,435 0 comments 0 reactions 1 assignee View on GitHub

@freddyDOTCMS is already working on this.

Since Sep 7, 2026.

dotCMS : Analytics Team : Falcon Type : Task
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Summary

CAEM's Spec-Kit configuration has two independent gaps, both surfaced incidentally while running
/speckit-plan for #37406 (Recreate ClickHouse schema with environment as a key dimension).
Neither is part of that feature or any other product work — this is pure Spec-Kit tooling upkeep,
filed as its own ticket rather than folded into an unrelated feature's branch.

Gap 1: plan-template.md's Constitution Check table is missing 2 rows

.specify/memory/constitution.md was bumped 1.0.01.1.0, adding Principle IX (Async
Write Isolation) and Principle X (Structured Logging). .specify/templates/overrides/plan-template.md's
Constitution Check table — the one /speckit-plan fills in for every feature — still only lists
Principles I through VIII. Confirmed directly: exactly 8 rows, none for IX/X. Every /speckit-plan
run since that constitution bump has either silently skipped evaluating those two principles, or
had to manually extend the table on the fly (as happened while planning #37406).

Fix: add two rows to the table, matching the existing format and sourced from the constitution's
own principle summaries:

| IX. Async Write Isolation — ingest writes dispatched via `eventIngestionExecutor`, never on the HTTP thread | | |
| X. Structured Logging — all logging via `LogContext` | | |

Low-risk, mechanical — no design decision required.

Gap 2: no ADR-context lookup mechanism exists in CAEM at all

docs/core/SPEC_KIT_QUICK_START.md (dotCMS/core's own Spec-Kit doc, which this project follows)
states: "/speckit-plan auto-runs /speckit-adr-context before planning (a mandatory before_plan
hook in .specify/extensions.yml). It searches dotCMS/platform-adrs and pulls relevant decisions
into the plan as binding input."

None of that exists in dot-ca-event-manager:

  • .specify/extensions.yml has hooks: {} — no before_plan hook registered.
  • No speckit-adr-context skill exists under .claude/skills/.
  • No adr-context.sh script exists under .specify/scripts/bash/.
  • No mention of ADR-context tooling anywhere in .specify/CUSTOMIZATIONS.md.

Every ADR consultation in this project so far (e.g., ADR-0022 while planning #37406) has been done
by hand — fetching the ADR text directly and reasoning about it manually, with no automated support
and no enforcement that it happens at all.

This needs a decision before it needs code. Two options:

  1. Build/port a /speckit-adr-context skill + script for CAEM — its own design question (how it
    should query dotCMS/platform-adrs, what counts as "relevant" for a ClickHouse-analytics-focused
    project versus core's broader scope), then wire it as a before_plan hook.
  2. Decide manual ADR verification is the accepted approach for this project, and record that
    explicitly (e.g., in .specify/CUSTOMIZATIONS.md) so it stops reading as an oversight every time
    someone notices it's missing.

Scope

  • Add the 2 missing Constitution Check rows to plan-template.md.
  • Decide between the two options above for Gap 2.
  • If building: design and implement a /speckit-adr-context skill + script for CAEM, wired as a
    before_plan hook in .specify/extensions.yml.
  • If documenting: add the explicit decision to .specify/CUSTOMIZATIONS.md.

Out of scope

  • #37349, #37406, or any other product feature — this ticket is standalone Spec-Kit tooling
    upkeep, not part of that epic or any of its sub-tasks.

Acceptance Criteria

  • plan-template.md's Constitution Check table includes all 10 current principles (I–X)
  • Either: a working /speckit-adr-context skill + script exists in CAEM and is wired as a
    before_plan hook, or: .specify/CUSTOMIZATIONS.md explicitly documents that ADR
    verification is manual-only by design for this project

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.