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
214 changes: 41 additions & 173 deletions .specify/constitution.md

Large diffs are not rendered by default.

218 changes: 61 additions & 157 deletions .specify/memory/constitution.md

Large diffs are not rendered by default.

323 changes: 323 additions & 0 deletions .specify/memory/principles.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions .specify/templates/plan-template.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Implementation Plan: [FEATURE]

<!-- Principles: authoritative text lives in .specify/memory/principles.md; do not copy full definitions here. -->

**Branch**: `<prefix>/[###-descriptor]` (prefix ∈ {feature, fix, docs, chore}) | **Date**: [DATE] | **Spec**: [link]
**Input**: Feature specification from `/specs/[###-feature-name]/spec.md`

Expand Down Expand Up @@ -27,6 +29,8 @@

## Constitution Check

*Consult full principle definitions in `.specify/memory/principles.md` (single source of truth).*

*GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*

Mandatory alignment items:
Expand Down
3 changes: 3 additions & 0 deletions .specify/templates/spec-template.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# Feature Specification: [FEATURE NAME]

<!-- Principles central reference: .specify/memory/principles.md -->

**Work Branch**: `<prefix>/[###-descriptor]` where `<prefix>` ∈ {feature, fix, docs, chore}
**Created**: [DATE]
**Status**: Draft
**Input**: User description: "$ARGUMENTS"

## Constitution Alignment (Mandatory)
*Refer to `.specify/memory/principles.md` for the canonical principle wording; list only the relevant numbers and compliance notes here.*
List how this feature will comply with core principles:
- Test‑First (P1): Failing unit tests in `tests/unit/test_<feature>.py` BEFORE implementation.
- Explicit Configuration Boundaries (P2): New behavior exposed only via documented action inputs (list if any needed).
Expand Down
68 changes: 34 additions & 34 deletions .specify/templates/tasks-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
description: "Task list template for feature implementation"
---

<!-- Principle definitions centralized in .specify/memory/principles.md; do not restate here. -->
# Tasks: [FEATURE NAME]

**Input**: Design documents from `/specs/[###-feature-name]/`
**Prerequisites**: plan.md (required), spec.md (required for user stories), research.md, data-model.md, contracts/

**Tests**: Core logic unit tests are MANDATORY (Constitution Principle 1). Additional integration or snapshot tests OPTIONAL unless specified.
**Tests**: Core logic unit tests are MANDATORY (Constitution PID:A-1). Additional integration or snapshot tests OPTIONAL unless specified.

**Organization**: Tasks are grouped by user story to enable independent implementation and testing of each story.

Expand All @@ -21,9 +22,9 @@ description: "Task list template for feature implementation"
- Tests MUST go under `tests/unit/` (unit) or `tests/integration/` (integration)
- Mirrored paths: For `release_notes_generator/x/y.py` create `tests/unit/release_notes_generator/x/test_y.py`.
- Branch naming: Branch MUST start with allowed prefix (feature|fix|docs|chore) + kebab-case descriptor.
- Typing: New or changed public functions MUST include full type annotations (Principle 14).
- TODOs: Any introduced TODO must include issue reference per `TODO(<issue-id>):` pattern (Principle 15).
- Performance: If feature affects mining/data fetch loops, add measurement & API budget validation task (Principle 7).
- Typing: New or changed public functions MUST include full type annotations (PID:K-1).
- TODOs: Any introduced TODO must include issue reference per `TODO(<issue-id>):` pattern (PID:G-3).
- Performance: If feature affects mining/data fetch loops, add measurement & API budget validation task (PID:E-1).

<!-- SAMPLE TASKS BELOW (REPLACE) -->

Expand All @@ -32,12 +33,12 @@ description: "Task list template for feature implementation"
**Purpose**: Project initialization and basic structure

- [ ] T001 Create any new module directories in `release_notes_generator/`
- [ ] T002 [P] Ensure mirrored test path structure for new/relocated tests (Principle 12)
- [ ] T003 Verify branch prefix matches regex `^(feature|fix|docs|chore)/` (Principle 13) or rename before proceeding
- [ ] T004 [P] Add initial failing unit tests in `tests/unit/` for new logic (Test‑First gate)
- [ ] T005 [P] Configure/verify linting, typing (mypy) and formatting tools (Principles 1, 14)
- [ ] T006 [P] Add TODO pattern linter or script (Principle 15)
- [ ] T007 [P] Add performance baseline/measurement scaffold if feature impacts API calls (Principle 7)
- [ ] T002 [P] Ensure mirrored test path structure for new/relocated tests (PID:A-2)
- [ ] T003 Verify branch prefix matches regex `^(feature|fix|docs|chore)/` (PID:H-1) or rename before proceeding
- [ ] T004 [P] Add initial failing unit tests in `tests/unit/` for new logic (Test‑First gate PID:A-1)
- [ ] T005 [P] Configure/verify linting, typing (mypy) and formatting tools (PIDs: A-1, K-1)
- [ ] T006 [P] Add TODO pattern linter or script (PID:G-3)
- [ ] T007 [P] Add performance baseline/measurement scaffold if feature impacts API calls (PID:E-1)

---

Expand All @@ -51,7 +52,7 @@ description: "Task list template for feature implementation"
- [ ] T009 [P] Add utilities (if needed) with tests (`tests/unit/test_utils_<name>.py`)
- [ ] T010 Setup error handling pattern (log & return) — no cross-module exception leakage
- [ ] T011 Dead code removal (list obsolete functions) + tests ensuring replacement paths
- [ ] T012 Security review: confirm no sensitive logging added (Principle 16)
- [ ] T012 Security review: confirm no sensitive logging added (PID:I-1)

**Checkpoint**: Foundation ready - user story implementation can now begin in parallel

Expand All @@ -70,10 +71,10 @@ description: "Task list template for feature implementation"

### Implementation for User Story 1

- [ ] T015 [P] [US1] Implement function(s) in `release_notes_generator/<module>.py` (full typing - P14)
- [ ] T016 [US1] Logging additions (INFO lifecycle, DEBUG details) without secrets (P5, P16)
- [ ] T017 [US1] Ensure deterministic ordering adjustments (P3)
- [ ] T018 [US1] Capture performance metrics (API calls & elapsed) if applicable (P7)
- [ ] T015 [P] [US1] Implement function(s) in `release_notes_generator/<module>.py` (full typing - PID:K-1)
- [ ] T016 [US1] Logging additions (INFO lifecycle, DEBUG details) without secrets (PID:D-1, PID:I-1)
- [ ] T017 [US1] Ensure deterministic ordering adjustments (PID:B-2)
- [ ] T018 [US1] Capture performance metrics (API calls & elapsed) if applicable (PID:E-1)

**Checkpoint**: User Story 1 fully functional & independently testable

Expand All @@ -91,9 +92,9 @@ description: "Task list template for feature implementation"

### Implementation for User Story 2

- [ ] T020 [US2] Implement logic in existing module (maintain typing - P14)
- [ ] T021 [US2] Update records builder ensuring no cross-module exceptions (P9)
- [ ] T022 [US2] Update/extend performance measurement if scope affects API usage (P7)
- [ ] T020 [US2] Implement logic in existing module (maintain typing - PID:K-1)
- [ ] T021 [US2] Update records builder ensuring no cross-module exceptions (PID:F-1)
- [ ] T022 [US2] Update/extend performance measurement if scope affects API usage (PID:E-1)

**Checkpoint**: User Stories 1 & 2 independently functional

Expand All @@ -112,9 +113,9 @@ description: "Task list template for feature implementation"
### Implementation for User Story 3

- [ ] T024 [US3] Implement functionality
- [ ] T025 [US3] Update documentation/comments (concise, logic-focused) (P11)
- [ ] T026 [US3] Add/adjust TODOs with issue references (P15)
- [ ] T027 [US3] Re-run performance snapshot if affected (P7)
- [ ] T025 [US3] Update documentation/comments (concise, logic-focused) (PID:G-2)
- [ ] T026 [US3] Add/adjust TODOs with issue references (PID:G-3)
- [ ] T027 [US3] Re-run performance snapshot if affected (PID:E-1)

**Checkpoint**: All user stories functional; tests green

Expand All @@ -124,10 +125,9 @@ description: "Task list template for feature implementation"

- [ ] TXXX [P] Documentation updates in `README.md`, `docs/`
- [ ] TXXX Code cleanup (remove any newly unused code)
- [ ] TXXX Performance optimization / confirm within budget (P7)
- [ ] TXXX [P] Additional unit tests (edge cases) in `tests/unit/`
- [ ] TXXX Security/robustness improvements (P16)
- [ ] TXXX TODO sweep: ensure all TODOs have current issue links and none expired (P15)
- [ ] TXXX Performance optimization / confirm within budget (PID:E-1)
- [ ] TXXX Security/robustness improvements (PID:I-1)
- [ ] TXXX TODO sweep: ensure all TODOs have current issue links and none expired (PID:G-3)

---

Expand All @@ -154,12 +154,12 @@ Add each story with its own failing tests → implementation → validation cycl

## Notes

- Avoid unused functions (delete immediately if obsoleted) (P10)
- Prefer functions over classes unless state/polymorphism required (P8)
- Handle errors locally; log & return (P9)
- Comments concise & logic-focused (P11)
- Test Path Mirroring required for new tests (P12)
- Enforce full typing & minimal ignores (P14)
- TODOs require issue linkage (P15)
- No sensitive output in logs (P16)
- Monitor API calls & elapsed runtime (P7)
- Avoid unused functions (delete immediately if obsoleted) (PID:G-1)
- Prefer functions over classes unless state/polymorphism required (PID:K-2)
- Handle errors locally; log & return (PID:F-1)
- Comments concise & logic-focused (PID:G-2)
- Test Path Mirroring required for new tests (PID:A-2)
- Enforce full typing & minimal ignores (PID:K-1)
- TODOs require issue linkage (PID:G-3)
- No sensitive output in logs (PID:I-1)
- Monitor API calls & elapsed runtime (PID:E-1)
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
* Ensure the Pull Request description clearly outlines your solution.
* Link your PR to the relevant _Issue_.

## Branch Naming (Principle 13)
## Branch Naming (PID:H-1)
Branches MUST start with one of the allowed prefixes: `feature/`, `fix/`, `docs/`, `chore/`
Examples:
- `feature/add-hierarchy-support`
Expand Down
2 changes: 1 addition & 1 deletion DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ export INPUT_GITHUB_TOKEN=$(printenv <your-env-token-var>)
python3 ./<path-to-action-project-root>/main.py
```

## Branch Naming Convention (Principle 13)
## Branch Naming Convention (PID:H-1)
All work branches MUST use an allowed prefix followed by a concise kebab-case descriptor (optional numeric ID):
Allowed prefixes:
- feature/ : new functionality & enhancements
Expand Down
Loading
Loading