Next - #69
Merged
Merged
Conversation
- Remove RFC-static-extraction.md (superseded by OpenSpec exploration) - Remove packages/core/ANIMUS_ARCHITECTURE.md (superseded by specs) - Remove packages/_docs/lib/animus-runtime.tsx (failed POC) - Clean packages/_docs/pages/_app.tsx (remove dead runtime import) - Gut packages/core/CLAUDE.md (1250 → 37 lines, now points to specs) - Gut packages/theming/CLAUDE.md (334 → 23 lines, lean reference) - Add canonical specs: builder-chain, extension-system, prop-system - Add OpenSpec config and core-builder-spec change artifacts Net: -1,634 lines of AI-generated bloat replaced with 575 lines of structured, validated specifications. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
❌ Deploy Preview for animus-ui failed.
|
✅ Deploy Preview for animus-canary ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Root cause of the silent corruption surfaced by --apply --all on the next
branch: getExportsOfFile walked VariableStatement declarations but only
handled `ts.isIdentifier(d.name)`. ObjectBindingPattern and
ArrayBindingPattern fell through, so a destructured export like
export const { system: ds } = createSystem();
was registered as zero exports. D1 (reconcile-after-knip) then judged
`export { ds } from './system'` re-exports as "all-stale" and deleted the
entire statement, breaking every cross-package consumer of `ds`.
Fix: extract a `collectBindingNames` helper that walks Identifier,
ObjectBindingPattern, and ArrayBindingPattern recursively (with the
ArrayBindingPattern hole case handled). Call it from the VariableStatement
branch in getExportsOfFile.
Three new tests in reconcile-after-knip.test.ts:
- object-binding-pattern collects every renamed local
- array-binding-pattern skips holes, collects named slots
- end-to-end: barrel re-exporting from a destructured-binding source is
preserved (the regression scenario)
Also: the JSDoc on packages/test-ds/src/system.ts said "NOT exported from
index.ts — consumers use their own system config." That was wrong: index.ts
does re-export `ds` and showcase + next-app fixtures rely on it. Replaced
with an accurate description that won't mislead future readers.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
68/68 tasks complete. Spec deltas promoted to openspec/specs/code-hygiene/ spec.md (8 requirements added, 1 modified). All implementation verified end-to-end on the next branch: - Receipts substrate (scripts/hygiene/_receipts.ts + _emit-biome-receipts.ts + _emit-knip-receipts.ts) emitting v1-schema JSONL audit trail - Presenter (scripts/hygiene/presenter.ts) deriving the convergence verdict from receipts; orchestrator owns exit code - Cap-hit verdict cutover: clean trailing iterations correctly classified as convergence (verified on real --apply --all run) - Layer C category-drift canary closing the session-89 silent-no-op regression class - Dist-staleness precondition (require_dist_fresh_for_workspaces); fix-mode ERROR, scan-mode WARN - --apply --all confirmation gate (TTY prompt + non-TTY --yes-apply-all flag), end-to-end TTY-verified - Help-text refresh with env-var-aware defaults - Reconciler span-preserving rewrite (consecutive-stale-run range computation; preserves JSDoc, type modifiers, suppression directives on retained elements) - Tier 3 fixtures: function-overload-with-JSDoc, namespace deletion, CJS export = re-export, destructured-binding-export - D1 binding-pattern fix in getExportsOfFile (the bug that surfaced late; now locked in by 3 tests) - biome.json ignores .hygiene/; .knip.json ignores hygiene wrapper TS files; CLAUDE.md § Code Hygiene Workflow rewritten The receipt-based loop exit (currently fingerprint-based) is the acknowledged follow-up; deferred as architectural improvement now that the binding-pattern bug is fixed and convergence is reliable. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.