@sallmarta/eye-hate-agent 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -98,21 +98,24 @@ Additionally, ask the user:
98
98
  If yes, generate a boilerplate `foundation/changelog.md` with an initial unreleased section.
99
99
 
100
100
  ### For Brownfield Projects (with existing code):
101
- Analyze the codebase for active development signals:
102
- - Recent commits, open branches, TODO comments.
103
- - Sprint-style branch names (`sprint-*`, `release-*`, `feat/*`).
104
- - Issue tracker references in commits or code.
105
- - CI/CD pipeline activity.
106
-
107
- If active development signals are found, ask the user:
108
- "This project appears to be in active development. Would you like to set up phase-based planning to track your development cycles?
101
+ You **MUST** check all four active development signals. Do NOT skip this step:
102
+
103
+ 1. **Recent commits** run `git log --oneline -20` or equivalent; if there are commits within the last 14 days, OR 10+ commits within the last 30 days, this signal is positive.
104
+ 2. **Sprint/feature branches** — run `git branch -a` and look for naming patterns like `sprint/`, `phase/`, `release/`, `feature/`, `feat/`, `dev/`.
105
+ 3. **Planning artifacts** — check for `TODO.md`, `ROADMAP.md`, `.github/ISSUE_TEMPLATE/`, issue tracker references in recent commits (e.g., `#123`, `fixes #`, `closes #`), or project board configs.
106
+ 4. **TODO density** — grep the codebase for `TODO`, `FIXME`, `HACK` comments; if count ≥ 5, this signal is positive.
107
+
108
+ If **any one** signal is positive, you **MUST** ask the user:
109
+ "This project shows active development signals ([list which signals were positive and what was found]).
110
+ Would you like to set up `foundation/phases/` to track your development cycles?
109
111
  If yes, describe the current and upcoming phases (or I can infer from your codebase)."
110
112
 
111
113
  If the user provides phases:
112
114
  - Create `foundation/phases/index.md` with the phase registry.
113
115
  - Create individual phase files using brownfield naming: `phase-P{N}[-description].md` (e.g., `phase-P1-refactor.md`, `phase-P2-auth.md`).
114
116
 
115
- If the user declines or no active development signals: Skip phases entirely.
117
+ If the user declines: Skip phases entirely.
118
+ If all four signals are negative: Skip the phases prompt but note in your output that all four active development signals were negative and no phases were offered.
116
119
 
117
120
  Additionally, check for release signals (e.g., git tags, version updates in `package.json`, release branches). If found, ask the user:
118
121
  "Would you like to set up a changelog (`foundation/changelog.md`) to track historical releases?"
@@ -124,6 +127,7 @@ Before finishing, check that:
124
127
  2. `foundation/architecture.md` and `development/testing.md` do not conflict.
125
128
  3. The generated documents strictly match the approved Taxonomy Tier, conditional choices, and structural definitions cataloged in the master registry.
126
129
  4. If phases were generated, verify `foundation/phases/index.md` correctly registry-links to all individual phase files (`phase-*.md`), and each phase file has complete stable headings.
130
+ 5. For brownfield projects: if any active development signal was positive during Step 2.5, confirm that the user was prompted about setting up phases. If this prompt was skipped, **stop and prompt the user now before finishing**.
127
131
 
128
132
  ## Inputs
129
133
  Use the project brief, codebase, and constraints provided below to begin your analysis.
@@ -66,11 +66,21 @@ Proceed to the applicable action path.
66
66
  - i18n config, locale files → development/internationalization
67
67
  - README, inline comments, decision rationale → foundation/prd, architecture
68
68
  23. Mark all codebase-inferred facts as `Inferred from codebase` until the user confirms them.
69
- 24. **Active Development & Phases Detection.** When refreshing a project that does not yet have `foundation/phases/`, check for active development signals (recent commits, sprint branches, open milestones, TODO density). If signals are found, prompt the user:
70
- "This project appears to be in active development but has no phase-based planning docs.
71
- Would you like to set up development phases to track your sprints and milestones?
69
+ 24. **Active Development & Phases Detection (MANDATORY).** When refreshing a project that does not yet have `foundation/phases/`, you **MUST** check all four active development signals before proceeding to doc refresh. Do NOT skip this step. The signals are:
70
+
71
+ 1. **Recent commits** run `git log --oneline -20` or equivalent; if there are commits within the last 14 days, OR 10+ commits within the last 30 days, this signal is positive.
72
+ 2. **Sprint/feature branches** — run `git branch -a` and look for naming patterns like `sprint/`, `phase/`, `release/`, `feature/`, `feat/`, `dev/`.
73
+ 3. **Planning artifacts** — check for `TODO.md`, `ROADMAP.md`, `.github/ISSUE_TEMPLATE/`, issue tracker references in recent commits (e.g., `#123`, `fixes #`, `closes #`), or project board configs.
74
+ 4. **TODO density** — grep the codebase for `TODO`, `FIXME`, `HACK` comments; if count ≥ 5, this signal is positive.
75
+
76
+ If **any one** signal is positive, you **MUST** prompt the user:
77
+ "This project shows active development signals ([list which signals were positive and what was found]).
78
+ Would you like to set up `foundation/phases/` to track your development cycles?
72
79
  If yes, describe the current and upcoming phases (or I can infer from your codebase)."
80
+
73
81
  If the user agrees, create `foundation/phases/index.md` and individual phase files using brownfield naming (`phase-P{N}[-description].md`, e.g., `phase-P1-refactor.md`).
82
+ If the user declines, skip phases creation entirely — but still report the detection outcome in the Output Contract.
83
+ If all four signals are negative, skip the phases prompt but note in your output that all four active development signals were negative and no phases were offered.
74
84
  25. **Phases Update Workflow.** When `foundation/phases/` already exists, treat it as a living operational document:
75
85
  - Update sprint tracker in the active phase file when sprint-related changes are detected.
76
86
  - Mark completed phases by updating their status.
@@ -82,15 +92,16 @@ Proceed to the applicable action path.
82
92
  1. Run Step 0 (Doc State Detection).
83
93
  2. Read the change summary (if provided) or the user's intent.
84
94
  3. **Scan the codebase** — inspect source code, configs, tests, CI/CD pipelines, and package manifests for current truth. This step is NOT optional.
85
- 4. Read the owning project docs (if Active SDD or Mixed state).
86
- 5. Read `docs/project-docs/index.md` and `docs/project-docs/technical-guidelines/index.md` when present.
87
- 6. Read legacy/reference folders when present.
88
- 7. Read relevant guideline docs when the change touches technical rules.
89
- 8. Identify impacted dependent docs.
90
- 9. Cross-reference codebase findings against doc/legacy claims — resolve conflicts by prompting the user (see rule 21).
91
- 10. Refresh/create the owning docs first (using combined codebase + docs evidence).
92
- 11. Refresh summary or index docs second.
93
- 12. Run a consistency pass.
95
+ 4. **Phases Detection Gate** If `foundation/phases/` does not exist, execute Rule 24 (Active Development & Phases Detection) now. Run all four signal checks using the codebase data from step 3. If any signal is positive, prompt the user about setting up phases before continuing. If `foundation/phases/` already exists, proceed to step 5.
96
+ 5. Read the owning project docs (if Active SDD or Mixed state).
97
+ 6. Read `docs/project-docs/index.md` and `docs/project-docs/technical-guidelines/index.md` when present.
98
+ 7. Read legacy/reference folders when present.
99
+ 8. Read relevant guideline docs when the change touches technical rules.
100
+ 9. Identify impacted dependent docs.
101
+ 10. Cross-reference codebase findings against doc/legacy claims resolve conflicts by prompting the user (see rule 21).
102
+ 11. Refresh/create the owning docs first (using combined codebase + docs evidence).
103
+ 12. Refresh summary or index docs second.
104
+ 13. Run a consistency pass.
94
105
 
95
106
  ## Ownership Examples
96
107
 
@@ -122,6 +133,7 @@ Your result should state:
122
133
  4. any remaining consistency risks or open questions
123
134
  5. which codebase-vs-doc conflicts were resolved and how (per user direction)
124
135
  6. the auto-detected tier (for Legacy Only / Non-SDD states), if applicable
136
+ 7. whether active development signals were detected, which signals were positive/negative, and whether the user was prompted about `foundation/phases/` setup (include the user's response: accepted, declined, or not yet answered)
125
137
 
126
138
  ## Final Pass
127
139
 
@@ -132,6 +144,7 @@ Before finishing, check that:
132
144
  3. no stale summary remains in `foundation/status.md`, `docs/project-docs/index.md`, `technical-guidelines/index.md`, or other index docs
133
145
  4. codebase-inferred facts are clearly marked and do not silently override user-confirmed truths
134
146
  5. the auto-detected tier (for Legacy Only / Non-SDD states) is stated in the output so the user can override it if needed
147
+ 6. if `foundation/phases/` did not exist at the start of this refresh and any active development signal was positive, confirm that the user was prompted about setting up phases — if this prompt was skipped, **stop and prompt the user now before finishing**
135
148
 
136
149
  ## Inputs
137
150
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sallmarta/eye-hate-agent",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "Template-and-engine toolkit for AI-agent-assisted project workflows.",
5
5
  "directories": {
6
6
  "doc": "docs"