memorytrace 0.3.1__tar.gz → 0.4.0__tar.gz
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.
- memorytrace-0.4.0/.agents/skills/deploy/SKILL.md +97 -0
- memorytrace-0.4.0/.agents/skills/review/SKILL.md +84 -0
- memorytrace-0.4.0/.agents/skills/sprint/SKILL.md +69 -0
- memorytrace-0.4.0/.claude/skills/deploy/SKILL.md +97 -0
- memorytrace-0.4.0/.claude/skills/review/SKILL.md +84 -0
- memorytrace-0.4.0/.claude/skills/sprint/SKILL.md +69 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/.claude/workspace/evaluation.md +72 -72
- {memorytrace-0.3.1 → memorytrace-0.4.0}/.gitignore +1 -0
- memorytrace-0.4.0/AGENTS.md +209 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/CLAUDE.md +209 -209
- memorytrace-0.4.0/PKG-INFO +105 -0
- memorytrace-0.4.0/README.md +65 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/hooks/session-memory-load.sh +35 -35
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/hooks/stop-memory-save.sh +52 -52
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/install.sh +290 -290
- {memorytrace-0.3.1 → memorytrace-0.4.0}/docs/01-project-analysis/04-directory-structure.md +20 -20
- memorytrace-0.4.0/docs/01-project-analysis/05-cli-commands.md +75 -0
- memorytrace-0.4.0/docs/01-project-analysis/09-setup-guide.md +138 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/docs/02-problem-analysis/14-engram-code-review-2026-04-12.md +346 -346
- {memorytrace-0.3.1 → memorytrace-0.4.0}/docs/02-problem-analysis/15-engram-code-review-followup-2026-04-12.md +371 -371
- {memorytrace-0.3.1 → memorytrace-0.4.0}/docs/02-problem-analysis/16-engram-code-review-round3-2026-04-12.md +295 -295
- {memorytrace-0.3.1 → memorytrace-0.4.0}/docs/02-problem-analysis/17-engram-code-review-round4-and-korean-ner-plan-2026-04-12.md +314 -314
- {memorytrace-0.3.1 → memorytrace-0.4.0}/docs/02-problem-analysis/18-engram-cli-ux-issues-2026-04-13.md +281 -281
- memorytrace-0.4.0/docs/03-improvement-plan/23-engram-next-capabilities-roadmap-2026-04-16.md +253 -0
- memorytrace-0.4.0/docs/04-usage-guide/01-quickstart.md +86 -0
- memorytrace-0.4.0/docs/04-usage-guide/02-claude-code-setup.md +137 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/docs/05-windows-compatibility/windows-encoding.md +95 -95
- memorytrace-0.4.0/docs/README.md +37 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-backlinks-decisions-maintenance.md +704 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-entity-governance.md +426 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-follow-up-task-recommendations.md +271 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-freshness-verification.md +502 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-goal-aware-retrieval-reranking.md +625 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-governance-split-merge-recommendations.md +485 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-phase0-provenance-trace.md +590 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-projection-reranking-phase1.md +83 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-retention-recommendations.md +480 -0
- memorytrace-0.4.0/docs/superpowers/plans/2026-04-16-scoped-memory-job-runner.md +445 -0
- memorytrace-0.4.0/docs/superpowers/specs/2026-04-16-backlinks-decisions-maintenance-design.md +558 -0
- memorytrace-0.4.0/docs/superpowers/specs/2026-04-16-entity-governance-design.md +251 -0
- memorytrace-0.4.0/docs/superpowers/specs/2026-04-16-follow-up-task-recommendations-design.md +202 -0
- memorytrace-0.4.0/docs/superpowers/specs/2026-04-16-freshness-verification-design.md +339 -0
- memorytrace-0.4.0/docs/superpowers/specs/2026-04-16-governance-split-merge-recommendations-design.md +246 -0
- memorytrace-0.4.0/docs/superpowers/specs/2026-04-16-phase0-provenance-trace-design.md +332 -0
- memorytrace-0.4.0/docs/superpowers/specs/2026-04-16-projection-reranking-phase1-design.md +217 -0
- memorytrace-0.4.0/docs/superpowers/specs/2026-04-16-retention-recommendations-design.md +276 -0
- memorytrace-0.4.0/docs/superpowers/specs/2026-04-16-scoped-memory-job-runner-design.md +313 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/__init__.py +1 -1
- memorytrace-0.4.0/engram/cli/app.py +1465 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/cli/simple.py +372 -372
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/config.py +5 -0
- memorytrace-0.4.0/engram/debug/__init__.py +5 -0
- memorytrace-0.4.0/engram/debug/service.py +458 -0
- memorytrace-0.4.0/engram/decisions/__init__.py +1 -0
- memorytrace-0.4.0/engram/decisions/service.py +159 -0
- memorytrace-0.4.0/engram/engine.py +1921 -0
- memorytrace-0.4.0/engram/explanations/__init__.py +5 -0
- memorytrace-0.4.0/engram/explanations/builder.py +112 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/extraction/llm_extractor.py +3 -3
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/extraction/ner/korean.py +176 -176
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/extraction/regex_extractor.py +1 -1
- memorytrace-0.4.0/engram/freshness/__init__.py +6 -0
- memorytrace-0.4.0/engram/freshness/service.py +301 -0
- memorytrace-0.4.0/engram/governance/__init__.py +5 -0
- memorytrace-0.4.0/engram/governance/service.py +287 -0
- memorytrace-0.4.0/engram/intake/__init__.py +5 -0
- memorytrace-0.4.0/engram/intake/service.py +694 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/integrations/mcp_server.py +2 -2
- memorytrace-0.4.0/engram/jobs/__init__.py +1 -0
- memorytrace-0.4.0/engram/jobs/service.py +65 -0
- memorytrace-0.4.0/engram/maintenance/__init__.py +1 -0
- memorytrace-0.4.0/engram/maintenance/service.py +54 -0
- memorytrace-0.4.0/engram/models/brief.py +395 -0
- memorytrace-0.4.0/engram/models/debug.py +193 -0
- memorytrace-0.4.0/engram/models/decision.py +65 -0
- memorytrace-0.4.0/engram/models/explanation.py +104 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/models/fact.py +8 -1
- memorytrace-0.4.0/engram/models/governance.py +64 -0
- memorytrace-0.4.0/engram/models/health.py +156 -0
- memorytrace-0.4.0/engram/models/intake.py +187 -0
- memorytrace-0.4.0/engram/models/job.py +26 -0
- memorytrace-0.4.0/engram/models/maintenance.py +64 -0
- memorytrace-0.4.0/engram/models/memory_type.py +131 -0
- memorytrace-0.4.0/engram/models/reference.py +37 -0
- memorytrace-0.4.0/engram/models/retention.py +91 -0
- memorytrace-0.4.0/engram/models/scope.py +40 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/models/search.py +96 -52
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/models/session.py +1 -0
- memorytrace-0.4.0/engram/models/snapshot.py +151 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/models/source.py +4 -3
- memorytrace-0.4.0/engram/models/verification.py +78 -0
- memorytrace-0.4.0/engram/models/view.py +53 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/quality/confidence.py +2 -12
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/quality/conflict.py +27 -9
- memorytrace-0.4.0/engram/quality/decay.py +33 -0
- memorytrace-0.4.0/engram/quality/decay_policy.py +94 -0
- memorytrace-0.4.0/engram/quality/diagnostics.py +743 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/quality/gate.py +13 -2
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/quality/pii.py +43 -1
- memorytrace-0.4.0/engram/recommendations/__init__.py +5 -0
- memorytrace-0.4.0/engram/recommendations/service.py +447 -0
- memorytrace-0.4.0/engram/references/__init__.py +1 -0
- memorytrace-0.4.0/engram/references/service.py +151 -0
- memorytrace-0.4.0/engram/retention/__init__.py +5 -0
- memorytrace-0.4.0/engram/retention/service.py +121 -0
- memorytrace-0.4.0/engram/safety/__init__.py +17 -0
- memorytrace-0.4.0/engram/safety/paths.py +138 -0
- memorytrace-0.4.0/engram/scopes/__init__.py +1 -0
- memorytrace-0.4.0/engram/scopes/service.py +76 -0
- memorytrace-0.4.0/engram/search/base.py +22 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/search/fts5_search.py +41 -1
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/search/hybrid.py +9 -0
- memorytrace-0.4.0/engram/search/reranker.py +50 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/search/semantic.py +8 -4
- memorytrace-0.4.0/engram/session/brief.py +472 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/session/context.py +2 -2
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/session/manager.py +44 -6
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/session/working_memory.py +4 -0
- memorytrace-0.4.0/engram/snapshots/__init__.py +5 -0
- memorytrace-0.4.0/engram/snapshots/service.py +528 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/storage/base.py +5 -1
- memorytrace-0.4.0/engram/storage/migrations.py +492 -0
- memorytrace-0.4.0/engram/storage/sqlite_store.py +2112 -0
- memorytrace-0.4.0/mem +8 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/pyproject.toml +6 -4
- memorytrace-0.4.0/tests/fixtures/explanation_scenarios.py +8 -0
- memorytrace-0.4.0/tests/fixtures/retrieval_scenarios.py +17 -0
- memorytrace-0.4.0/tests/test_cli/test_app.py +522 -0
- memorytrace-0.4.0/tests/test_cli/test_entrypoints.py +33 -0
- memorytrace-0.4.0/tests/test_debug/test_service.py +206 -0
- memorytrace-0.4.0/tests/test_decisions/__init__.py +1 -0
- memorytrace-0.4.0/tests/test_decisions/test_service.py +44 -0
- memorytrace-0.4.0/tests/test_engine.py +784 -0
- memorytrace-0.4.0/tests/test_engine_security.py +156 -0
- memorytrace-0.4.0/tests/test_explanations/test_builder.py +97 -0
- memorytrace-0.4.0/tests/test_freshness/test_service.py +103 -0
- memorytrace-0.4.0/tests/test_governance/test_entity_governance.py +86 -0
- memorytrace-0.4.0/tests/test_intake/test_security.py +135 -0
- memorytrace-0.4.0/tests/test_intake/test_service.py +211 -0
- memorytrace-0.4.0/tests/test_jobs/__init__.py +1 -0
- memorytrace-0.4.0/tests/test_jobs/test_service.py +40 -0
- memorytrace-0.4.0/tests/test_logic_round4.py +170 -0
- memorytrace-0.4.0/tests/test_logic_round5.py +123 -0
- memorytrace-0.4.0/tests/test_logic_round6.py +104 -0
- memorytrace-0.4.0/tests/test_maintenance/__init__.py +1 -0
- memorytrace-0.4.0/tests/test_maintenance/test_service.py +27 -0
- memorytrace-0.4.0/tests/test_perf_round7.py +311 -0
- memorytrace-0.4.0/tests/test_perf_round8.py +168 -0
- memorytrace-0.4.0/tests/test_perf_round9.py +44 -0
- memorytrace-0.4.0/tests/test_quality/test_diagnostics.py +320 -0
- memorytrace-0.4.0/tests/test_quality/test_memory_type.py +251 -0
- memorytrace-0.4.0/tests/test_references/__init__.py +1 -0
- memorytrace-0.4.0/tests/test_references/test_service.py +50 -0
- memorytrace-0.4.0/tests/test_retention/test_retention_service.py +59 -0
- memorytrace-0.4.0/tests/test_scopes/__init__.py +1 -0
- memorytrace-0.4.0/tests/test_scopes/test_service.py +30 -0
- memorytrace-0.4.0/tests/test_search/test_reranker.py +36 -0
- memorytrace-0.4.0/tests/test_security_round3.py +146 -0
- memorytrace-0.4.0/tests/test_session/__init__.py +0 -0
- memorytrace-0.4.0/tests/test_session/test_brief.py +354 -0
- memorytrace-0.4.0/tests/test_snapshots/__init__.py +0 -0
- memorytrace-0.4.0/tests/test_snapshots/test_security.py +71 -0
- memorytrace-0.4.0/tests/test_snapshots/test_service.py +238 -0
- memorytrace-0.4.0/tests/test_storage/__init__.py +0 -0
- memorytrace-0.4.0/tests/test_storage/test_migrations.py +327 -0
- memorytrace-0.3.1/PKG-INFO +0 -138
- memorytrace-0.3.1/README.md +0 -100
- memorytrace-0.3.1/docs/01-project-analysis/01-overview.md +0 -49
- memorytrace-0.3.1/docs/01-project-analysis/02-tech-stack.md +0 -60
- memorytrace-0.3.1/docs/01-project-analysis/03-architecture.md +0 -171
- memorytrace-0.3.1/docs/01-project-analysis/05-cli-commands.md +0 -95
- memorytrace-0.3.1/docs/01-project-analysis/06-core-features.md +0 -200
- memorytrace-0.3.1/docs/01-project-analysis/07-storage-model.md +0 -173
- memorytrace-0.3.1/docs/01-project-analysis/08-design-decisions.md +0 -151
- memorytrace-0.3.1/docs/01-project-analysis/09-setup-guide.md +0 -181
- memorytrace-0.3.1/docs/02-problem-analysis/10-problem-analysis.md +0 -394
- memorytrace-0.3.1/docs/02-problem-analysis/11-agent-memory-critique.md +0 -398
- memorytrace-0.3.1/docs/02-problem-analysis/13-markdown-storage-problems.md +0 -646
- memorytrace-0.3.1/docs/03-improvement-plan/12-improvements-blueprint.md +0 -817
- memorytrace-0.3.1/docs/04-usage-guide/01-quickstart.md +0 -273
- memorytrace-0.3.1/docs/04-usage-guide/02-claude-code-setup.md +0 -161
- memorytrace-0.3.1/docs/README.md +0 -45
- memorytrace-0.3.1/engram/cli/app.py +0 -301
- memorytrace-0.3.1/engram/engine.py +0 -783
- memorytrace-0.3.1/engram/quality/decay.py +0 -28
- memorytrace-0.3.1/engram/search/base.py +0 -20
- memorytrace-0.3.1/engram/storage/migrations.py +0 -30
- memorytrace-0.3.1/engram/storage/sqlite_store.py +0 -748
- memorytrace-0.3.1/mem +0 -139
- memorytrace-0.3.1/tests/test_cli/test_app.py +0 -166
- memorytrace-0.3.1/tests/test_engine.py +0 -159
- {memorytrace-0.3.1 → memorytrace-0.4.0}/LICENSE +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/agents/evaluator.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/agents/planner.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/agents/researcher.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/agents/security-reviewer.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/hooks/README.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/hooks/on-stop-checkpoint.sh +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/hooks/on-stop-verify.sh +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/hooks/post-edit-completeness.sh +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/hooks/post-edit-lint.sh +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/hooks/post-edit-robustness.sh +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/hooks/pre-compact-save.sh +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/rules/harness-design.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/rules/production-robustness.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/settings.json +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/skills/deploy/SKILL.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/skills/memory-context/SKILL.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/skills/memory-find/SKILL.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/skills/memory-save/SKILL.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/skills/review/SKILL.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/skills/sprint/SKILL.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.claude/skills/thorough/SKILL.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/.gitignore +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/CLAUDE.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/README.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/claude-setup/blog-post.md +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/__main__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/cli/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/cli/formatters.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/exceptions.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/extraction/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/extraction/base.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/extraction/ner/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/extraction/ner/cjk.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/extraction/ner/english.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/integrations/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/integrations/sdk.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/models/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/models/entity.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/models/quality.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/models/relation.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/quality/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/search/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/search/tokenizer.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/session/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/storage/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/engram/storage/markdown_export.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/conftest.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/fixtures/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_cli/__init__.py +0 -0
- {memorytrace-0.3.1/tests/test_extraction → memorytrace-0.4.0/tests/test_debug}/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_e2e.py +0 -0
- {memorytrace-0.3.1/tests/test_extraction/test_ner → memorytrace-0.4.0/tests/test_extraction}/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_extraction/test_llm_extractor.py +0 -0
- {memorytrace-0.3.1/tests/test_integrations → memorytrace-0.4.0/tests/test_extraction/test_ner}/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_extraction/test_ner/test_english.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_extraction/test_ner/test_korean.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_extraction/test_regex_extractor.py +0 -0
- {memorytrace-0.3.1/tests/test_quality → memorytrace-0.4.0/tests/test_intake}/__init__.py +0 -0
- {memorytrace-0.3.1/tests/test_search → memorytrace-0.4.0/tests/test_integrations}/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_integrations/test_mcp_server.py +0 -0
- {memorytrace-0.3.1/tests/test_session → memorytrace-0.4.0/tests/test_quality}/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_quality/test_confidence.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_quality/test_conflict.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_quality/test_gate.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_quality/test_pii.py +0 -0
- {memorytrace-0.3.1/tests/test_storage → memorytrace-0.4.0/tests/test_search}/__init__.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_search/test_fts5_search.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_search/test_semantic.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_search/test_tokenizer.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_session/test_manager.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_session/test_working_memory.py +0 -0
- {memorytrace-0.3.1 → memorytrace-0.4.0}/tests/test_storage/test_sqlite_store.py +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy
|
|
3
|
+
description: 배포 워크플로우를 실행할 때 사용. 사전 검증, 배포 실행, 사후 확인의 3단계로 안전한 배포를 보장한다.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Deploy — 배포 워크플로우
|
|
7
|
+
|
|
8
|
+
## 개요
|
|
9
|
+
|
|
10
|
+
배포는 되돌리기 어려운 작업이므로 체계적 검증이 필수.
|
|
11
|
+
사전 검증 → 배포 실행 → 사후 확인의 3단계를 따른다.
|
|
12
|
+
|
|
13
|
+
## Phase 1: 사전 검증 (Pre-deploy)
|
|
14
|
+
|
|
15
|
+
배포 전 반드시 확인:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
- [ ] 모든 테스트 통과 (전체 스위트)
|
|
19
|
+
- [ ] 빌드 성공 (프로덕션 빌드)
|
|
20
|
+
- [ ] 린트/타입체크 클린
|
|
21
|
+
- [ ] 환경변수 확인 (프로덕션 값 세팅)
|
|
22
|
+
- [ ] 마이그레이션 필요 여부 확인
|
|
23
|
+
- [ ] 변경사항 요약 준비
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 검증 명령 실행
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# 프로젝트에 맞게 교체 <!-- TODO -->
|
|
30
|
+
npm run build # 빌드
|
|
31
|
+
npm test # 테스트
|
|
32
|
+
npm run lint # 린트
|
|
33
|
+
npm run typecheck # 타입체크
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
하나라도 실패하면 배포 진행 금지.
|
|
37
|
+
|
|
38
|
+
## Phase 2: 배포 실행
|
|
39
|
+
|
|
40
|
+
### 배포 전 확인
|
|
41
|
+
|
|
42
|
+
사용자에게 최종 확인:
|
|
43
|
+
```
|
|
44
|
+
배포 준비 완료:
|
|
45
|
+
- 환경: <production/staging>
|
|
46
|
+
- 브랜치: <branch-name>
|
|
47
|
+
- 변경사항: <요약>
|
|
48
|
+
- 마이그레이션: <있음/없음>
|
|
49
|
+
|
|
50
|
+
진행하시겠습니까?
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 배포 명령
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# 프로젝트에 맞게 교체 <!-- TODO -->
|
|
57
|
+
# 예시:
|
|
58
|
+
git push origin main
|
|
59
|
+
# 또는
|
|
60
|
+
npm run deploy
|
|
61
|
+
# 또는
|
|
62
|
+
gh workflow run deploy.yml
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Phase 3: 사후 확인 (Post-deploy)
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
- [ ] 배포 성공 확인 (CI/CD 상태)
|
|
69
|
+
- [ ] 헬스체크 통과
|
|
70
|
+
- [ ] 핵심 기능 스모크 테스트
|
|
71
|
+
- [ ] 에러 모니터링 확인 (로그, 알림)
|
|
72
|
+
- [ ] 배포 결과 팀에 공유
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 롤백 계획
|
|
76
|
+
|
|
77
|
+
배포 전에 롤백 방법을 항상 준비:
|
|
78
|
+
```bash
|
|
79
|
+
# 프로젝트에 맞게 교체 <!-- TODO -->
|
|
80
|
+
# 예시:
|
|
81
|
+
git revert HEAD
|
|
82
|
+
# 또는
|
|
83
|
+
# 이전 배포 버전 재배포
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## 금지 사항
|
|
87
|
+
|
|
88
|
+
- 테스트/빌드 실패 상태에서 배포
|
|
89
|
+
- 사용자 확인 없이 프로덕션 배포
|
|
90
|
+
- 롤백 계획 없이 배포
|
|
91
|
+
- 금요일 오후 배포 (팀 합의 없이)
|
|
92
|
+
|
|
93
|
+
## 규칙
|
|
94
|
+
|
|
95
|
+
- 배포는 항상 사용자의 명시적 승인 후 실행
|
|
96
|
+
- 모든 단계에서 증거 기반 확인
|
|
97
|
+
- 문제 발생 시 즉시 롤백, 원인 조사는 이후
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review
|
|
3
|
+
description: 구조화된 코드 리뷰 워크플로우. 보안 → 로직 → 성능 → 구조 → 컨벤션 순서로 5단계 순차 리뷰를 진행한다. /review 또는 "코드리뷰 해줘"로 호출.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code Review Workflow
|
|
7
|
+
|
|
8
|
+
## 사용법
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
/review # 스테이징된 변경사항 리뷰
|
|
12
|
+
/review path/to/file.ts # 특정 파일 리뷰
|
|
13
|
+
/review --branch feat/xxx # 브랜치 전체 변경사항 리뷰
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 리뷰 대상 결정
|
|
17
|
+
|
|
18
|
+
1. `$ARGUMENTS`가 있으면 해당 파일/브랜치 대상
|
|
19
|
+
2. 없으면 `git diff --staged` → 스테이징된 변경사항
|
|
20
|
+
3. 스테이징도 없으면 `git diff` → 언스테이징된 변경사항
|
|
21
|
+
4. 변경사항이 없으면 사용자에게 리뷰 대상을 질문
|
|
22
|
+
|
|
23
|
+
## 5단계 순차 리뷰
|
|
24
|
+
|
|
25
|
+
### Step 1: 보안 (Security)
|
|
26
|
+
|
|
27
|
+
- 하드코딩된 시크릿, API 키, 크레덴셜
|
|
28
|
+
- SQL 인젝션, XSS, 커맨드 인젝션 가능성
|
|
29
|
+
- 인증/인가 우회 가능성
|
|
30
|
+
- 민감 데이터 로깅 여부
|
|
31
|
+
|
|
32
|
+
### Step 2: 로직 (Logic)
|
|
33
|
+
|
|
34
|
+
- 엣지 케이스 누락 (null, empty, boundary)
|
|
35
|
+
- 오프바이원 에러
|
|
36
|
+
- 레이스 컨디션
|
|
37
|
+
- 에러 핸들링 누락 또는 삼킴(swallowing)
|
|
38
|
+
|
|
39
|
+
### Step 3: 성능 (Performance)
|
|
40
|
+
|
|
41
|
+
- N+1 쿼리, 불필요한 반복
|
|
42
|
+
- 메모리 누수 가능성 (이벤트 리스너, 타이머 미정리)
|
|
43
|
+
- 대용량 데이터셋에서의 시간복잡도
|
|
44
|
+
- 불필요한 리렌더링 (프론트엔드)
|
|
45
|
+
|
|
46
|
+
### Step 4: 구조 (Architecture)
|
|
47
|
+
|
|
48
|
+
- 단일 책임 원칙 위반
|
|
49
|
+
- 순환 의존성
|
|
50
|
+
- 레이어 경계 침범 (예: UI에서 DB 직접 접근)
|
|
51
|
+
- 기존 패턴과의 불일치
|
|
52
|
+
|
|
53
|
+
### Step 5: 컨벤션 (Convention)
|
|
54
|
+
|
|
55
|
+
- 네이밍 일관성
|
|
56
|
+
- 프로젝트 코드 스타일 준수
|
|
57
|
+
- 불필요한 주석, TODO, console.log
|
|
58
|
+
- 테스트 커버리지
|
|
59
|
+
|
|
60
|
+
## 출력 형식
|
|
61
|
+
|
|
62
|
+
각 단계별로 아래 형식을 따른다:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
### Step N: 카테고리명
|
|
66
|
+
- ✅ 통과 항목 요약
|
|
67
|
+
- ⚠️ 경고: [파일:라인] 설명 + 제안
|
|
68
|
+
- ❌ 심각: [파일:라인] 설명 + 수정 필수
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
최종 요약:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
### 종합
|
|
75
|
+
- 심각: N건 / 경고: M건 / 통과: K건
|
|
76
|
+
- 머지 가능 여부: ✅ 가능 / ⚠️ 조건부 / ❌ 수정 필요
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 규칙
|
|
80
|
+
|
|
81
|
+
- 추측하지 않는다 — 코드를 직접 읽고 판단
|
|
82
|
+
- "아마 괜찮을 것"이라고 넘기지 않는다
|
|
83
|
+
- 수정 제안 시 구체적인 코드 예시 포함
|
|
84
|
+
- 칭찬할 부분이 있으면 언급 (좋은 패턴, 깔끔한 구현)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sprint
|
|
3
|
+
description: 대규모 기능을 체계적으로 구현할 때 사용. 브레인스토밍 → 계획 → 실행 → 리뷰 → 완료의 전체 개발 사이클을 관리한다.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Sprint — 대규모 기능 구현 사이클
|
|
7
|
+
|
|
8
|
+
## 개요
|
|
9
|
+
|
|
10
|
+
단일 기능을 브레인스토밍부터 완료까지 전체 사이클로 관리한다.
|
|
11
|
+
각 단계에서 해당 전문 스킬을 호출하여 품질을 보장한다.
|
|
12
|
+
|
|
13
|
+
## 스프린트 흐름
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
1. 브레인스토밍 → brainstorming 스킬
|
|
17
|
+
2. 계획 작성 → writing-plans 스킬
|
|
18
|
+
3. 환경 준비 → using-git-worktrees 스킬
|
|
19
|
+
4. 계획 실행 → executing-plans 또는 subagent-driven-development 스킬
|
|
20
|
+
5. 코드 리뷰 → requesting-code-review 스킬
|
|
21
|
+
6. 브랜치 완료 → finishing-a-development-branch 스킬
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 시작 방법
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
/sprint <기능 설명>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Phase 1: 브레인스토밍
|
|
31
|
+
- 사용자 의도와 요구사항 탐색
|
|
32
|
+
- 2-3가지 접근법 제안
|
|
33
|
+
- 설계 승인 후 설계 문서 저장
|
|
34
|
+
|
|
35
|
+
### Phase 2: 계획 작성
|
|
36
|
+
- 설계를 2-5분 단위 태스크로 분해
|
|
37
|
+
- 파일 경로, 코드, 테스트, 명령어 포함
|
|
38
|
+
- 계획 문서 저장
|
|
39
|
+
|
|
40
|
+
### Phase 3: 환경 준비
|
|
41
|
+
- Git worktree로 격리 환경 생성
|
|
42
|
+
- 의존성 설치
|
|
43
|
+
- 베이스라인 테스트 통과 확인
|
|
44
|
+
|
|
45
|
+
### Phase 4: 계획 실행
|
|
46
|
+
- 태스크별 TDD 사이클 (Red-Green-Refactor)
|
|
47
|
+
- 각 태스크 후 검증
|
|
48
|
+
- 블로커 발생 시 중단 후 논의
|
|
49
|
+
|
|
50
|
+
### Phase 5: 코드 리뷰
|
|
51
|
+
- 전체 변경사항 리뷰
|
|
52
|
+
- Critical/Important 이슈 수정
|
|
53
|
+
- 전체 테스트 스위트 통과 확인
|
|
54
|
+
|
|
55
|
+
### Phase 6: 브랜치 완료
|
|
56
|
+
- 4가지 옵션 (머지/PR/유지/폐기) 제시
|
|
57
|
+
- 선택 실행 및 정리
|
|
58
|
+
|
|
59
|
+
## 체크포인트
|
|
60
|
+
|
|
61
|
+
각 Phase 완료 시:
|
|
62
|
+
- 진행 상태 저장 (`docs/plans/` 내)
|
|
63
|
+
- 컨텍스트가 70% 이상이면 상태 저장 후 세션 정리 권장
|
|
64
|
+
|
|
65
|
+
## 규칙
|
|
66
|
+
|
|
67
|
+
- Phase 순서를 건너뛰지 않는다
|
|
68
|
+
- 각 Phase에서 해당 전문 스킬을 반드시 따른다
|
|
69
|
+
- 사용자 승인 없이 다음 Phase로 넘어가지 않는다
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy
|
|
3
|
+
description: 배포 워크플로우를 실행할 때 사용. 사전 검증, 배포 실행, 사후 확인의 3단계로 안전한 배포를 보장한다.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Deploy — 배포 워크플로우
|
|
7
|
+
|
|
8
|
+
## 개요
|
|
9
|
+
|
|
10
|
+
배포는 되돌리기 어려운 작업이므로 체계적 검증이 필수.
|
|
11
|
+
사전 검증 → 배포 실행 → 사후 확인의 3단계를 따른다.
|
|
12
|
+
|
|
13
|
+
## Phase 1: 사전 검증 (Pre-deploy)
|
|
14
|
+
|
|
15
|
+
배포 전 반드시 확인:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
- [ ] 모든 테스트 통과 (전체 스위트)
|
|
19
|
+
- [ ] 빌드 성공 (프로덕션 빌드)
|
|
20
|
+
- [ ] 린트/타입체크 클린
|
|
21
|
+
- [ ] 환경변수 확인 (프로덕션 값 세팅)
|
|
22
|
+
- [ ] 마이그레이션 필요 여부 확인
|
|
23
|
+
- [ ] 변경사항 요약 준비
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 검증 명령 실행
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# 프로젝트에 맞게 교체 <!-- TODO -->
|
|
30
|
+
npm run build # 빌드
|
|
31
|
+
npm test # 테스트
|
|
32
|
+
npm run lint # 린트
|
|
33
|
+
npm run typecheck # 타입체크
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
하나라도 실패하면 배포 진행 금지.
|
|
37
|
+
|
|
38
|
+
## Phase 2: 배포 실행
|
|
39
|
+
|
|
40
|
+
### 배포 전 확인
|
|
41
|
+
|
|
42
|
+
사용자에게 최종 확인:
|
|
43
|
+
```
|
|
44
|
+
배포 준비 완료:
|
|
45
|
+
- 환경: <production/staging>
|
|
46
|
+
- 브랜치: <branch-name>
|
|
47
|
+
- 변경사항: <요약>
|
|
48
|
+
- 마이그레이션: <있음/없음>
|
|
49
|
+
|
|
50
|
+
진행하시겠습니까?
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 배포 명령
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# 프로젝트에 맞게 교체 <!-- TODO -->
|
|
57
|
+
# 예시:
|
|
58
|
+
git push origin main
|
|
59
|
+
# 또는
|
|
60
|
+
npm run deploy
|
|
61
|
+
# 또는
|
|
62
|
+
gh workflow run deploy.yml
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Phase 3: 사후 확인 (Post-deploy)
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
- [ ] 배포 성공 확인 (CI/CD 상태)
|
|
69
|
+
- [ ] 헬스체크 통과
|
|
70
|
+
- [ ] 핵심 기능 스모크 테스트
|
|
71
|
+
- [ ] 에러 모니터링 확인 (로그, 알림)
|
|
72
|
+
- [ ] 배포 결과 팀에 공유
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 롤백 계획
|
|
76
|
+
|
|
77
|
+
배포 전에 롤백 방법을 항상 준비:
|
|
78
|
+
```bash
|
|
79
|
+
# 프로젝트에 맞게 교체 <!-- TODO -->
|
|
80
|
+
# 예시:
|
|
81
|
+
git revert HEAD
|
|
82
|
+
# 또는
|
|
83
|
+
# 이전 배포 버전 재배포
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## 금지 사항
|
|
87
|
+
|
|
88
|
+
- 테스트/빌드 실패 상태에서 배포
|
|
89
|
+
- 사용자 확인 없이 프로덕션 배포
|
|
90
|
+
- 롤백 계획 없이 배포
|
|
91
|
+
- 금요일 오후 배포 (팀 합의 없이)
|
|
92
|
+
|
|
93
|
+
## 규칙
|
|
94
|
+
|
|
95
|
+
- 배포는 항상 사용자의 명시적 승인 후 실행
|
|
96
|
+
- 모든 단계에서 증거 기반 확인
|
|
97
|
+
- 문제 발생 시 즉시 롤백, 원인 조사는 이후
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review
|
|
3
|
+
description: 구조화된 코드 리뷰 워크플로우. 보안 → 로직 → 성능 → 구조 → 컨벤션 순서로 5단계 순차 리뷰를 진행한다. /review 또는 "코드리뷰 해줘"로 호출.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code Review Workflow
|
|
7
|
+
|
|
8
|
+
## 사용법
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
/review # 스테이징된 변경사항 리뷰
|
|
12
|
+
/review path/to/file.ts # 특정 파일 리뷰
|
|
13
|
+
/review --branch feat/xxx # 브랜치 전체 변경사항 리뷰
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 리뷰 대상 결정
|
|
17
|
+
|
|
18
|
+
1. `$ARGUMENTS`가 있으면 해당 파일/브랜치 대상
|
|
19
|
+
2. 없으면 `git diff --staged` → 스테이징된 변경사항
|
|
20
|
+
3. 스테이징도 없으면 `git diff` → 언스테이징된 변경사항
|
|
21
|
+
4. 변경사항이 없으면 사용자에게 리뷰 대상을 질문
|
|
22
|
+
|
|
23
|
+
## 5단계 순차 리뷰
|
|
24
|
+
|
|
25
|
+
### Step 1: 보안 (Security)
|
|
26
|
+
|
|
27
|
+
- 하드코딩된 시크릿, API 키, 크레덴셜
|
|
28
|
+
- SQL 인젝션, XSS, 커맨드 인젝션 가능성
|
|
29
|
+
- 인증/인가 우회 가능성
|
|
30
|
+
- 민감 데이터 로깅 여부
|
|
31
|
+
|
|
32
|
+
### Step 2: 로직 (Logic)
|
|
33
|
+
|
|
34
|
+
- 엣지 케이스 누락 (null, empty, boundary)
|
|
35
|
+
- 오프바이원 에러
|
|
36
|
+
- 레이스 컨디션
|
|
37
|
+
- 에러 핸들링 누락 또는 삼킴(swallowing)
|
|
38
|
+
|
|
39
|
+
### Step 3: 성능 (Performance)
|
|
40
|
+
|
|
41
|
+
- N+1 쿼리, 불필요한 반복
|
|
42
|
+
- 메모리 누수 가능성 (이벤트 리스너, 타이머 미정리)
|
|
43
|
+
- 대용량 데이터셋에서의 시간복잡도
|
|
44
|
+
- 불필요한 리렌더링 (프론트엔드)
|
|
45
|
+
|
|
46
|
+
### Step 4: 구조 (Architecture)
|
|
47
|
+
|
|
48
|
+
- 단일 책임 원칙 위반
|
|
49
|
+
- 순환 의존성
|
|
50
|
+
- 레이어 경계 침범 (예: UI에서 DB 직접 접근)
|
|
51
|
+
- 기존 패턴과의 불일치
|
|
52
|
+
|
|
53
|
+
### Step 5: 컨벤션 (Convention)
|
|
54
|
+
|
|
55
|
+
- 네이밍 일관성
|
|
56
|
+
- 프로젝트 코드 스타일 준수
|
|
57
|
+
- 불필요한 주석, TODO, console.log
|
|
58
|
+
- 테스트 커버리지
|
|
59
|
+
|
|
60
|
+
## 출력 형식
|
|
61
|
+
|
|
62
|
+
각 단계별로 아래 형식을 따른다:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
### Step N: 카테고리명
|
|
66
|
+
- ✅ 통과 항목 요약
|
|
67
|
+
- ⚠️ 경고: [파일:라인] 설명 + 제안
|
|
68
|
+
- ❌ 심각: [파일:라인] 설명 + 수정 필수
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
최종 요약:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
### 종합
|
|
75
|
+
- 심각: N건 / 경고: M건 / 통과: K건
|
|
76
|
+
- 머지 가능 여부: ✅ 가능 / ⚠️ 조건부 / ❌ 수정 필요
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 규칙
|
|
80
|
+
|
|
81
|
+
- 추측하지 않는다 — 코드를 직접 읽고 판단
|
|
82
|
+
- "아마 괜찮을 것"이라고 넘기지 않는다
|
|
83
|
+
- 수정 제안 시 구체적인 코드 예시 포함
|
|
84
|
+
- 칭찬할 부분이 있으면 언급 (좋은 패턴, 깔끔한 구현)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sprint
|
|
3
|
+
description: 대규모 기능을 체계적으로 구현할 때 사용. 브레인스토밍 → 계획 → 실행 → 리뷰 → 완료의 전체 개발 사이클을 관리한다.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Sprint — 대규모 기능 구현 사이클
|
|
7
|
+
|
|
8
|
+
## 개요
|
|
9
|
+
|
|
10
|
+
단일 기능을 브레인스토밍부터 완료까지 전체 사이클로 관리한다.
|
|
11
|
+
각 단계에서 해당 전문 스킬을 호출하여 품질을 보장한다.
|
|
12
|
+
|
|
13
|
+
## 스프린트 흐름
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
1. 브레인스토밍 → brainstorming 스킬
|
|
17
|
+
2. 계획 작성 → writing-plans 스킬
|
|
18
|
+
3. 환경 준비 → using-git-worktrees 스킬
|
|
19
|
+
4. 계획 실행 → executing-plans 또는 subagent-driven-development 스킬
|
|
20
|
+
5. 코드 리뷰 → requesting-code-review 스킬
|
|
21
|
+
6. 브랜치 완료 → finishing-a-development-branch 스킬
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 시작 방법
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
/sprint <기능 설명>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Phase 1: 브레인스토밍
|
|
31
|
+
- 사용자 의도와 요구사항 탐색
|
|
32
|
+
- 2-3가지 접근법 제안
|
|
33
|
+
- 설계 승인 후 설계 문서 저장
|
|
34
|
+
|
|
35
|
+
### Phase 2: 계획 작성
|
|
36
|
+
- 설계를 2-5분 단위 태스크로 분해
|
|
37
|
+
- 파일 경로, 코드, 테스트, 명령어 포함
|
|
38
|
+
- 계획 문서 저장
|
|
39
|
+
|
|
40
|
+
### Phase 3: 환경 준비
|
|
41
|
+
- Git worktree로 격리 환경 생성
|
|
42
|
+
- 의존성 설치
|
|
43
|
+
- 베이스라인 테스트 통과 확인
|
|
44
|
+
|
|
45
|
+
### Phase 4: 계획 실행
|
|
46
|
+
- 태스크별 TDD 사이클 (Red-Green-Refactor)
|
|
47
|
+
- 각 태스크 후 검증
|
|
48
|
+
- 블로커 발생 시 중단 후 논의
|
|
49
|
+
|
|
50
|
+
### Phase 5: 코드 리뷰
|
|
51
|
+
- 전체 변경사항 리뷰
|
|
52
|
+
- Critical/Important 이슈 수정
|
|
53
|
+
- 전체 테스트 스위트 통과 확인
|
|
54
|
+
|
|
55
|
+
### Phase 6: 브랜치 완료
|
|
56
|
+
- 4가지 옵션 (머지/PR/유지/폐기) 제시
|
|
57
|
+
- 선택 실행 및 정리
|
|
58
|
+
|
|
59
|
+
## 체크포인트
|
|
60
|
+
|
|
61
|
+
각 Phase 완료 시:
|
|
62
|
+
- 진행 상태 저장 (`docs/plans/` 내)
|
|
63
|
+
- 컨텍스트가 70% 이상이면 상태 저장 후 세션 정리 권장
|
|
64
|
+
|
|
65
|
+
## 규칙
|
|
66
|
+
|
|
67
|
+
- Phase 순서를 건너뛰지 않는다
|
|
68
|
+
- 각 Phase에서 해당 전문 스킬을 반드시 따른다
|
|
69
|
+
- 사용자 승인 없이 다음 Phase로 넘어가지 않는다
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
# Evaluation: Engram 3-Session Vibe Coding E2E Simulation
|
|
2
|
-
|
|
3
|
-
## Verdict: PASS
|
|
4
|
-
|
|
5
|
-
## Test Results Summary
|
|
6
|
-
|
|
7
|
-
| Step | Test | Status | Details |
|
|
8
|
-
|------|------|--------|---------|
|
|
9
|
-
| Session 1 - Save #1 | Tech stack save | PASS | Saved successfully, no entities auto-detected |
|
|
10
|
-
| Session 1 - Save #2 | Church model save | PASS | Saved successfully |
|
|
11
|
-
| Session 1 - Save #3 | JWT auth save | PASS | Saved, entities detected: Access Token, Refresh Token |
|
|
12
|
-
| Session 1 - Save #4 | Kakao map save | PASS | Saved successfully |
|
|
13
|
-
| Session 1 - Save #5 | Session summary save | PASS | Saved successfully |
|
|
14
|
-
| Session 2 - Save #1 | Review model save | PASS | Saved successfully |
|
|
15
|
-
| Session 2 - Save #2 | CORS fix save | PASS | Saved successfully |
|
|
16
|
-
| Session 2 - Save #3 | PostGIS search save | PASS | Saved successfully |
|
|
17
|
-
| Session 2 - Save #4 | Session summary save | PASS | Saved successfully |
|
|
18
|
-
| Session 3 - recent 10 | All 9 notes returned | PASS | All 9 notes listed in reverse chronological order |
|
|
19
|
-
| Session 3 - find JWT | JWT note found | PASS | Returned exact match |
|
|
20
|
-
| Session 3 - find CORS | CORS note found | PASS | Returned exact match |
|
|
21
|
-
| Session 3 - find Review | Review model found | PASS | Returned exact match |
|
|
22
|
-
| Session 3 - find PostGIS | PostGIS notes found | PASS | Returned 3 matching notes (tech stack, PostGIS specific, Church model) |
|
|
23
|
-
| Session 3 - status | Correct counts | PASS | 2 entities, 0 facts, 9 notes, 0 conflicts, healthy |
|
|
24
|
-
| Dedup - duplicate save | No new note created | PASS | Output said "Updated" (not "Saved"), notes stayed at 9 |
|
|
25
|
-
| Delete - preview | Shows matching note | PASS | Found 1 note, displayed preview, showed confirm command |
|
|
26
|
-
| Delete - confirm | Note deleted | PASS | "Deleted 1 note(s)" |
|
|
27
|
-
| Delete - verify gone | Search returns nothing | PASS | "Nothing found for CORS" |
|
|
28
|
-
| Delete - count check | Notes dropped to 8 | PASS | Status shows 8 notes |
|
|
29
|
-
|
|
30
|
-
## Criteria Results
|
|
31
|
-
|
|
32
|
-
| Criterion | Status | Notes |
|
|
33
|
-
|-----------|--------|-------|
|
|
34
|
-
| Multi-session persistence | PASS | Notes saved in session 1 and 2 fully retrievable in session 3 |
|
|
35
|
-
| Korean text handling | PASS | All Korean content stored and retrieved without corruption |
|
|
36
|
-
| Search accuracy | PASS | All 4 search queries returned correct results |
|
|
37
|
-
| Deduplication | PASS | Exact duplicate did not increment notes count (stayed at 9) |
|
|
38
|
-
| Delete preview (safe mode) | PASS | Without --confirm, shows preview only and prompts for confirmation |
|
|
39
|
-
| Delete execution | PASS | With --confirm, deletes the note and confirms count |
|
|
40
|
-
| Delete verification | PASS | Deleted note no longer appears in search |
|
|
41
|
-
| Entity auto-detection | PASS | Detected "Access Token" and "Refresh Token" as entities from JWT note |
|
|
42
|
-
| Status reporting | PASS | Accurate counts at every checkpoint |
|
|
43
|
-
|
|
44
|
-
## Issues Found
|
|
45
|
-
|
|
46
|
-
### [Issue 1 - Severity: Low]
|
|
47
|
-
- **What**: Entity auto-detection is sparse -- only 2 entities detected across 9 notes containing terms like "NestJS", "Prisma", "PostgreSQL", "PostGIS", "Church", "Review", "JWT", "CORS"
|
|
48
|
-
- **Where**: Entity extraction logic (internal to engram)
|
|
49
|
-
- **Expected**: More domain terms would be recognized as entities
|
|
50
|
-
- **Actual**: Only "Access Token" and "Refresh Token" were detected (2 entities total)
|
|
51
|
-
- **Fix suggestion**: This is a minor observation. The entity detection appears to focus on capitalized multi-word terms. Not a functional problem since `find` search works correctly regardless.
|
|
52
|
-
|
|
53
|
-
### [Issue 2 - Severity: Low]
|
|
54
|
-
- **What**: `engram recent 10` requested 10 notes but only 9 existed -- no error or warning, just returned all 9
|
|
55
|
-
- **Where**: `recent` subcommand
|
|
56
|
-
- **Expected**: This is actually correct behavior (return up to N)
|
|
57
|
-
- **Actual**: Correct -- returned all 9 without error
|
|
58
|
-
- **Fix suggestion**: No fix needed, this is the expected behavior.
|
|
59
|
-
|
|
60
|
-
## Regressions
|
|
61
|
-
|
|
62
|
-
None detected. All core operations (save, find, recent, status, delete-note, dedup) function correctly.
|
|
63
|
-
|
|
64
|
-
## Summary
|
|
65
|
-
|
|
66
|
-
All 20 test steps passed. The engram tool correctly handles:
|
|
67
|
-
- Persistent storage across simulated sessions
|
|
68
|
-
- Korean (UTF-8) content without corruption
|
|
69
|
-
- Full-text search returning accurate results
|
|
70
|
-
- Deduplication of exact-match notes (count stays stable)
|
|
71
|
-
- Two-phase delete (preview then confirm) with verification
|
|
72
|
-
- Accurate status reporting at every checkpoint
|
|
1
|
+
# Evaluation: Engram 3-Session Vibe Coding E2E Simulation
|
|
2
|
+
|
|
3
|
+
## Verdict: PASS
|
|
4
|
+
|
|
5
|
+
## Test Results Summary
|
|
6
|
+
|
|
7
|
+
| Step | Test | Status | Details |
|
|
8
|
+
|------|------|--------|---------|
|
|
9
|
+
| Session 1 - Save #1 | Tech stack save | PASS | Saved successfully, no entities auto-detected |
|
|
10
|
+
| Session 1 - Save #2 | Church model save | PASS | Saved successfully |
|
|
11
|
+
| Session 1 - Save #3 | JWT auth save | PASS | Saved, entities detected: Access Token, Refresh Token |
|
|
12
|
+
| Session 1 - Save #4 | Kakao map save | PASS | Saved successfully |
|
|
13
|
+
| Session 1 - Save #5 | Session summary save | PASS | Saved successfully |
|
|
14
|
+
| Session 2 - Save #1 | Review model save | PASS | Saved successfully |
|
|
15
|
+
| Session 2 - Save #2 | CORS fix save | PASS | Saved successfully |
|
|
16
|
+
| Session 2 - Save #3 | PostGIS search save | PASS | Saved successfully |
|
|
17
|
+
| Session 2 - Save #4 | Session summary save | PASS | Saved successfully |
|
|
18
|
+
| Session 3 - recent 10 | All 9 notes returned | PASS | All 9 notes listed in reverse chronological order |
|
|
19
|
+
| Session 3 - find JWT | JWT note found | PASS | Returned exact match |
|
|
20
|
+
| Session 3 - find CORS | CORS note found | PASS | Returned exact match |
|
|
21
|
+
| Session 3 - find Review | Review model found | PASS | Returned exact match |
|
|
22
|
+
| Session 3 - find PostGIS | PostGIS notes found | PASS | Returned 3 matching notes (tech stack, PostGIS specific, Church model) |
|
|
23
|
+
| Session 3 - status | Correct counts | PASS | 2 entities, 0 facts, 9 notes, 0 conflicts, healthy |
|
|
24
|
+
| Dedup - duplicate save | No new note created | PASS | Output said "Updated" (not "Saved"), notes stayed at 9 |
|
|
25
|
+
| Delete - preview | Shows matching note | PASS | Found 1 note, displayed preview, showed confirm command |
|
|
26
|
+
| Delete - confirm | Note deleted | PASS | "Deleted 1 note(s)" |
|
|
27
|
+
| Delete - verify gone | Search returns nothing | PASS | "Nothing found for CORS" |
|
|
28
|
+
| Delete - count check | Notes dropped to 8 | PASS | Status shows 8 notes |
|
|
29
|
+
|
|
30
|
+
## Criteria Results
|
|
31
|
+
|
|
32
|
+
| Criterion | Status | Notes |
|
|
33
|
+
|-----------|--------|-------|
|
|
34
|
+
| Multi-session persistence | PASS | Notes saved in session 1 and 2 fully retrievable in session 3 |
|
|
35
|
+
| Korean text handling | PASS | All Korean content stored and retrieved without corruption |
|
|
36
|
+
| Search accuracy | PASS | All 4 search queries returned correct results |
|
|
37
|
+
| Deduplication | PASS | Exact duplicate did not increment notes count (stayed at 9) |
|
|
38
|
+
| Delete preview (safe mode) | PASS | Without --confirm, shows preview only and prompts for confirmation |
|
|
39
|
+
| Delete execution | PASS | With --confirm, deletes the note and confirms count |
|
|
40
|
+
| Delete verification | PASS | Deleted note no longer appears in search |
|
|
41
|
+
| Entity auto-detection | PASS | Detected "Access Token" and "Refresh Token" as entities from JWT note |
|
|
42
|
+
| Status reporting | PASS | Accurate counts at every checkpoint |
|
|
43
|
+
|
|
44
|
+
## Issues Found
|
|
45
|
+
|
|
46
|
+
### [Issue 1 - Severity: Low]
|
|
47
|
+
- **What**: Entity auto-detection is sparse -- only 2 entities detected across 9 notes containing terms like "NestJS", "Prisma", "PostgreSQL", "PostGIS", "Church", "Review", "JWT", "CORS"
|
|
48
|
+
- **Where**: Entity extraction logic (internal to engram)
|
|
49
|
+
- **Expected**: More domain terms would be recognized as entities
|
|
50
|
+
- **Actual**: Only "Access Token" and "Refresh Token" were detected (2 entities total)
|
|
51
|
+
- **Fix suggestion**: This is a minor observation. The entity detection appears to focus on capitalized multi-word terms. Not a functional problem since `find` search works correctly regardless.
|
|
52
|
+
|
|
53
|
+
### [Issue 2 - Severity: Low]
|
|
54
|
+
- **What**: `engram recent 10` requested 10 notes but only 9 existed -- no error or warning, just returned all 9
|
|
55
|
+
- **Where**: `recent` subcommand
|
|
56
|
+
- **Expected**: This is actually correct behavior (return up to N)
|
|
57
|
+
- **Actual**: Correct -- returned all 9 without error
|
|
58
|
+
- **Fix suggestion**: No fix needed, this is the expected behavior.
|
|
59
|
+
|
|
60
|
+
## Regressions
|
|
61
|
+
|
|
62
|
+
None detected. All core operations (save, find, recent, status, delete-note, dedup) function correctly.
|
|
63
|
+
|
|
64
|
+
## Summary
|
|
65
|
+
|
|
66
|
+
All 20 test steps passed. The engram tool correctly handles:
|
|
67
|
+
- Persistent storage across simulated sessions
|
|
68
|
+
- Korean (UTF-8) content without corruption
|
|
69
|
+
- Full-text search returning accurate results
|
|
70
|
+
- Deduplication of exact-match notes (count stays stable)
|
|
71
|
+
- Two-phase delete (preview then confirm) with verification
|
|
72
|
+
- Accurate status reporting at every checkpoint
|