Skip to content

Commit d0e2307

Browse files
Feature/100 chapters can be defined by labels combination (#202)
Introduced multi label support for chapters.
1 parent 1d12c4e commit d0e2307

File tree

16 files changed

+955
-498
lines changed

16 files changed

+955
-498
lines changed

.specify/constitution.md

Lines changed: 41 additions & 173 deletions
Large diffs are not rendered by default.

.specify/memory/constitution.md

Lines changed: 61 additions & 157 deletions
Large diffs are not rendered by default.

.specify/memory/principles.md

Lines changed: 323 additions & 0 deletions
Large diffs are not rendered by default.

.specify/templates/plan-template.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Implementation Plan: [FEATURE]
22

3+
<!-- Principles: authoritative text lives in .specify/memory/principles.md; do not copy full definitions here. -->
4+
35
**Branch**: `<prefix>/[###-descriptor]` (prefix ∈ {feature, fix, docs, chore}) | **Date**: [DATE] | **Spec**: [link]
46
**Input**: Feature specification from `/specs/[###-feature-name]/spec.md`
57

@@ -27,6 +29,8 @@
2729

2830
## Constitution Check
2931

32+
*Consult full principle definitions in `.specify/memory/principles.md` (single source of truth).*
33+
3034
*GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*
3135

3236
Mandatory alignment items:

.specify/templates/spec-template.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
# Feature Specification: [FEATURE NAME]
22

3+
<!-- Principles central reference: .specify/memory/principles.md -->
4+
35
**Work Branch**: `<prefix>/[###-descriptor]` where `<prefix>` ∈ {feature, fix, docs, chore}
46
**Created**: [DATE]
57
**Status**: Draft
68
**Input**: User description: "$ARGUMENTS"
79

810
## Constitution Alignment (Mandatory)
11+
*Refer to `.specify/memory/principles.md` for the canonical principle wording; list only the relevant numbers and compliance notes here.*
912
List how this feature will comply with core principles:
1013
- Test‑First (P1): Failing unit tests in `tests/unit/test_<feature>.py` BEFORE implementation.
1114
- Explicit Configuration Boundaries (P2): New behavior exposed only via documented action inputs (list if any needed).

.specify/templates/tasks-template.md

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
description: "Task list template for feature implementation"
33
---
44

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

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

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

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

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

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

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

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

4243
---
4344

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

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

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

7172
### Implementation for User Story 1
7273

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

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

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

9293
### Implementation for User Story 2
9394

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

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

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

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

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

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

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

132132
---
133133

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

155155
## Notes
156156

157-
- Avoid unused functions (delete immediately if obsoleted) (P10)
158-
- Prefer functions over classes unless state/polymorphism required (P8)
159-
- Handle errors locally; log & return (P9)
160-
- Comments concise & logic-focused (P11)
161-
- Test Path Mirroring required for new tests (P12)
162-
- Enforce full typing & minimal ignores (P14)
163-
- TODOs require issue linkage (P15)
164-
- No sensitive output in logs (P16)
165-
- Monitor API calls & elapsed runtime (P7)
157+
- Avoid unused functions (delete immediately if obsoleted) (PID:G-1)
158+
- Prefer functions over classes unless state/polymorphism required (PID:K-2)
159+
- Handle errors locally; log & return (PID:F-1)
160+
- Comments concise & logic-focused (PID:G-2)
161+
- Test Path Mirroring required for new tests (PID:A-2)
162+
- Enforce full typing & minimal ignores (PID:K-1)
163+
- TODOs require issue linkage (PID:G-3)
164+
- No sensitive output in logs (PID:I-1)
165+
- Monitor API calls & elapsed runtime (PID:E-1)

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
* Ensure the Pull Request description clearly outlines your solution.
2626
* Link your PR to the relevant _Issue_.
2727

28-
## Branch Naming (Principle 13)
28+
## Branch Naming (PID:H-1)
2929
Branches MUST start with one of the allowed prefixes: `feature/`, `fix/`, `docs/`, `chore/`
3030
Examples:
3131
- `feature/add-hierarchy-support`

DEVELOPER.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ export INPUT_GITHUB_TOKEN=$(printenv <your-env-token-var>)
180180
python3 ./<path-to-action-project-root>/main.py
181181
```
182182

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

0 commit comments

Comments
 (0)