Prompt file imported from hlucianojr1/ea-logic-copilot-workshop-code (
.github/prompts/demo-workspace-eastl-feature.prompt.md). Copyright stays with the author.
Objective
Stage the specs and empty implementation directories for the EASTL-based feature
that Sessions 6 (Spec-Kit Pt 1) and 7 (Spec-Kit Pt 2) build to. The actual .h/.cpp/test
sources are produced during the live session by /implement invocations — that's the
demo. Pre-creating the dirs ensures /implement has a stable target.
Context references
#file:../instructions/spec-kit-artifacts.instructions.md#file:../instructions/cpp-snippets.instructions.md#file:../../docs/engagement-charter.md
Pre-conditions
demo-workspace-scaffold.prompt.mdanddemo-workspace-engine-module.prompt.mdcompleted.- spec-kit Constitution authored (will be done by
demo-workspace-spec-kit-init.prompt.md).
Steps
specs/specs/lockless-ring-buffer.md— feature spec followingspec-kit-artifacts.instructions.mdformat:- Motivation: SPSC ring-buffer for telemetry events, allocator-aware, deterministic.
- Public API sketch — header excerpt in
cppfence (must compile, no exceptions, no RTTI). - Invariants: capacity is power of two;
try_push/try_popare wait-free; no allocations after construction. - Test contract: list 6 named tests under
tests/util/lockless_ring_buffer_test.cpp. - Risks: false sharing, ABA on size_t counters, allocator lifetime.
specs/specs/fixed-string.md— feature spec:- Motivation: small-string optimization with compile-time max length, no heap.
- Public API:
template<size_t N> class fixed_string. - Invariants: capacity is
N;push_backpast capacity is a logged error (no exception). - Test contract: list 5 named tests under
tests/util/fixed_string_test.cpp. - Risks: alignment for SIMD-friendly access, char-encoding (ASCII only for v1).
- Create empty
include/engine_demo/util/,src/util/,tests/util/directories with.gitkeepso the path is stable for later/implementruns.
Output contract
- Two spec files exist, each with the eight required spec sections.
- Three util/ subdirectories exist with
.gitkeep. - No production source files yet — those come from spec-kit
/implement.
Self-validation
grep -q "## Test contract" output/ea-cpp-games/specs/specs/lockless-ring-buffer.md
grep -q "## Test contract" output/ea-cpp-games/specs/specs/fixed-string.md
test -d output/ea-cpp-games/include/engine_demo/util
Failure modes
- Pre-implementing the feature: do NOT generate
.h/.cpphere — that defeats the Session 6/7 demo. The feature is born during the live/implement. - Spec without test contract: every spec must name its tests; no exceptions.