Skip to content

feat: feature summary generation module for Loop 2 builds#64

Merged
fazxes merged 1 commit intomainfrom
feat/feature-summary
Apr 5, 2026
Merged

feat: feature summary generation module for Loop 2 builds#64
fazxes merged 1 commit intomainfrom
feat/feature-summary

Conversation

@fazxes
Copy link
Copy Markdown
Member

@fazxes fazxes commented Apr 5, 2026

Summary

  • New nightshift/summary.py module with generate_feature_summary() that produces structured summaries after Loop 2 feature builds
  • Added FeatureSummary TypedDict to types.py with files, tests, task counts, patterns, and NL description
  • Wired into build_feature() as post-verification step, stored in feature state file
  • Pattern detection for API endpoints, CLI commands, database changes, config, new modules, new test files
  • 22 new tests covering file collection, deduplication, pattern detection, description generation, state round-trip
  • Loop 2: 63% -> 72%, Overall: 79% -> 82%

Test plan

  • make check passes (685 tests, mypy strict, ruff, ASCII-clean, install refs)
  • All 22 new tests pass covering summary generation with mock build outputs
  • Feature state round-trip (write + read) preserves summary data
  • Pattern detection works for API, CLI, DB, config, new modules, new test files
  • Empty/failed builds produce valid (empty) summaries

After nightshift build completes a feature, generate_feature_summary()
produces a structured summary with files created/modified, tests added,
task counts, detected patterns (API, CLI, DB, config, new modules),
and a natural language description. Wired into build_feature() as a
post-verification step. Stored in feature state file under summary key.

22 new tests. Loop 2: 63% -> 72%. Overall: 79% -> 82%.
Task #59.
@fazxes fazxes merged commit 3cd6671 into main Apr 5, 2026
6 checks passed
@fazxes fazxes deleted the feat/feature-summary branch April 5, 2026 07:58
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5fb271f071

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread nightshift/feature.py
)
fv = state["final_verification"]
state["status"] = "completed" if fv is not None and fv["status"] == "passed" else "failed"
state["summary"] = generate_feature_summary(state)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Generate summary on wave-level failure paths

build_feature() only invokes generate_feature_summary in the post-verification success/finalization path, so any build that fails during a wave or integration returns before this line and persists summary=None. In practice, failed runs lose the partial progress summary (files/tests/patterns) that this feature is meant to provide for debugging and handoff contexts.

Useful? React with 👍 / 👎.

fazxes added a commit that referenced this pull request Apr 5, 2026
Comments said "File extensions" but the constants are directory path
segments and basename substrings. Flagged by code-reviewer on PR #64.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant