feat: feature summary generation module for Loop 2 builds#64
Conversation
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.
There was a problem hiding this comment.
💡 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".
| ) | ||
| fv = state["final_verification"] | ||
| state["status"] = "completed" if fv is not None and fv["status"] == "passed" else "failed" | ||
| state["summary"] = generate_feature_summary(state) |
There was a problem hiding this comment.
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 👍 / 👎.
Comments said "File extensions" but the constants are directory path segments and basename substrings. Flagged by code-reviewer on PR #64.
Summary
nightshift/summary.pymodule withgenerate_feature_summary()that produces structured summaries after Loop 2 feature buildsFeatureSummaryTypedDict totypes.pywith files, tests, task counts, patterns, and NL descriptionbuild_feature()as post-verification step, stored in feature state fileTest plan
make checkpasses (685 tests, mypy strict, ruff, ASCII-clean, install refs)