Private
Public Access
0
0
Commit Graph

4868 Commits

Author SHA1 Message Date
ed a8781f06c4 archive: ai loop regressions 2026-07-05 12:25:24 -04:00
ed dde47b3456 module taxonomy archive 2026-07-05 12:24:42 -04:00
ed e1abc2e0cd any type componentization archive 2026-07-05 12:24:26 -04:00
ed 045dff2cad chronology archive 2026-07-05 12:24:11 -04:00
ed 4e81e84c92 gui docs archive 2026-07-05 12:23:33 -04:00
ed 2eb2fb8d74 fix(directives): update HARVEST_SUMMARY.md cross-reference in current_baseline.md
Per the move of HARVEST_SUMMARY.md to the track directory, the Notes
section of current_baseline.md that referenced 'HARVEST_SUMMARY.md' by
file name only is updated to the new full path:
  conductor/tracks/directive_hotswap_harness_20260627/HARVEST_SUMMARY.md

So the next reader can find the file by following the link directly
rather than searching for it.
2026-07-04 13:26:12 -04:00
ed c7714813a7 chore: move HARVEST_SUMMARY.md to track directory
The HARVEST_SUMMARY.md is a meta-artifact for the directive_hotswap_
harness_20260627 track. It belongs in the track directory alongside
the spec/plan/state, not in the directives tree (which should hold
only the directive libraries themselves: v1.md + meta.md per
directive + presets/).

Moved via git mv (preserves history). Updated the lone in-tree
cross-reference in current_baseline.md Notes section to point to the
new path.

Other historical reports (TRACK_COMPLETION_*, phase3_verification_*)
still reference HARVEST_SUMMARY.md by name only without a relative
path; they continue to render correctly as descriptive references
to the file that existed at the time of the report.
2026-07-04 13:25:31 -04:00
ed d7455ab9b3 feat(directives): add tags.toml — multi-tag classification for 172 directives 2026-07-04 13:13:03 -04:00
ed 9ffa469f48 docs(review): semantic dedup review of 172 directives 2026-07-04 13:12:23 -04:00
ed 6e89d0ca1c test(directives): add scavenge_superpowers contract tests for 25 new directives 2026-07-04 12:38:11 -04:00
ed 73116199b7 feat(directives): scavenge superpowers plugin (finishing-a-development-branch, verification-before-completion, writing-plans): 5 directives 2026-07-04 12:36:06 -04:00
ed 9dd2c318fb feat(directives): scavenge superpowers plugin (subagent-driven-development, using-git-worktrees): 4 directives 2026-07-04 12:33:34 -04:00
ed 8e5c5ae378 feat(directives): scavenge superpowers plugin (receiving-code-review, requesting-code-review): 4 directives 2026-07-04 12:32:34 -04:00
ed 2a1b1698b9 feat(directives): scavenge superpowers plugin (test-driven-development, systematic-debugging): 6 directives 2026-07-04 12:31:40 -04:00
ed 19738b52e7 feat(directives): scavenge superpowers plugin (using-superpowers, brainstorming, dispatching-parallel-agents, executing-plans): 6 directives 2026-07-04 12:30:15 -04:00
ed 95ef712017 conductor(state): record scavenge pass b_5 (guides + role prompts + transcripts): 11 new directives (135 total) 2026-07-04 02:09:05 -04:00
ed 79124774ec feat(directives): scavenge sweep 4/5 (tracks + commands + styleguides + todos): 18 batch-4 directives + concurrent worker batches 2026-07-04 02:00:42 -04:00
ed e8d3578f2e feat(directives): scavenge sweep 2/5 preset update + test file + state 2026-07-04 01:57:24 -04:00
ed 694000f83f feat(directives): scavenge sweep 2/5 batch 3 (chronology v2 + MMA quarantine): 9 directives 2026-07-04 01:56:35 -04:00
ed a4e1d7d1b2 feat(directives): scavenge sweep 2/5 batch 2 (ui polish+sepia): 5 directives 2026-07-04 01:56:00 -04:00
ed dd153b1de1 feat(directives): scavenge sweep 2/5 batch 1 (startup+profiling): 2 directives 2026-07-04 01:55:23 -04:00
ed 3fcf7dccb5 feat(directives): checkpoint pre-batch-4 staging 2026-07-04 01:26:10 -04:00
ed b696b30f22 feat(directives): scavenge sweep preset update + test file (batch 1/5)
- current_baseline.md: added 9 new directives alphabetically interleaved
  (total 90); updated Notes section to track four harvest passes
- state.toml: new [scavenge_20260703] section + [safety_observations]
  (prompt-injection attempt noted for the record)
- tests/test_scavenge_batch_1.py: 9 parametrized cases + 2 aggregate
  tests verifying the 9 new directives have v1.md + meta.md, headings,
  sections, preset references, total count >= 90
2026-07-04 01:08:15 -04:00
ed b193df100f feat(directives): scavenge sweep 3/5 (docs/reports/2026-06-08): 6 directives
Lifted:
- test_instantiation_not_mock_away: tests must exercise actual instantiation,
  not mock away the constructor (caught the MiniMax 401 regression)
- preserve_prior_versions_of_review_docs: when iterating on a review,
  preserve prior versions as separate files (v2/v2.1/v2.2/v2.3)
- neutral_language_for_doc_drift: doc-drift fixes use 'predates/stale/
  outdated', not 'fictional' (value judgment, not technical description)
- preserve_before_compact_archive: at 80%+ context, write a comprehensive
  session-synthesis archive before compaction
- user_corrections_log_in_state_toml: per-track state.toml has a
  user_corrections_log section for any reviewed-by-user track
- surface_dirty_state_in_test_runner: when subprocess is dead/degraded,
  print a clear [BATCH-WARN] rather than silent timeout
2026-07-04 01:05:54 -04:00
ed a89d0cb30e feat(directives): scavenge sweep 2/5 (docs/reports/2026-05-11 + 2026-06-01): 2 directives
Lifted:
- profile_first_optimize_second: profile and measure the actual bottleneck
  before any architectural change (RAG init, not AI SDKs, was the bottleneck)
- surface_gaps_at_discovery_not_checkpoint: surface scope gaps and
  architectural deviations the moment they are discovered, not at a
  checkpoint (the 'all good!' footnote pattern is bad UX)
2026-07-04 01:05:07 -04:00
ed f130cc6813 feat(directives): scavenge sweep 1/5 (docs/reports/2026-03-02 through 2026-06-08): 1 directive
Lifted from docs/reports/2026-03-02/MCP_BUGFIX_20260306.md:
- pathlib_read_write_no_newline_kwarg: pathlib read_text/write_text must omit the
  newline kwarg (unsupported pre-3.10; corrupts line endings on Windows)
2026-07-04 01:04:44 -04:00
ed 6664086968 conductor(state): record scavenge pass phase_5 + s_1..s_6 tasks (15 new directives, 81 total) 2026-07-04 00:20:29 -04:00
ed b2ebe25d71 test(directives): add scavenge_lift contract tests (15 directives, 79 parametrized cases) 2026-07-04 00:18:51 -04:00
ed 9656bf2e88 feat(directives): update current_baseline preset with 15 scavenge directives (81 total) 2026-07-04 00:17:12 -04:00
ed 883f7ec5c1 feat(directives): scavenge from intent_dsl_survey + handoffs/: 5 directives 2026-07-04 00:15:27 -04:00
ed ebca201d39 feat(directives): scavenge from nagent_review_20260608/: 5 directives 2026-07-04 00:13:24 -04:00
ed bea5d6b151 feat(directives): scavenge from docs/MMA_Support/: 5 directives 2026-07-04 00:11:15 -04:00
ed 3155518305 test(aggregate_directives): assert clean bodies + pollution-fix + max_chars cap + MCP impl
8 new importable-function tests in tests/test_aggregate_directives.py:
- test_importable_function_returns_clean_body
- test_importable_function_no_meta_md_pollution
- test_importable_function_max_chars_truncates_with_suffix
- test_importable_function_max_chars_zero_is_unlimited
- test_importable_function_max_chars_above_size_is_unlimited
- test_importable_function_missing_preset_raises
- test_importable_function_missing_v1_in_preset_raises
- test_importable_function_accepts_relative_preset_path

7 new MCP-server tests in tests/test_mcp_aggregate_directives.py:
- test_mcp_server_exposes_aggregate_directives_spec
- test_mcp_server_impl_default_preset
- test_mcp_server_impl_explicit_preset_path
- test_mcp_server_impl_max_chars_truncates
- test_mcp_server_impl_missing_preset_returns_error_string
- test_mcp_server_impl_zero_max_chars_is_unlimited
- test_mcp_server_list_tools_includes_aggregate_directives

Tests load modules via importlib.util.spec_from_file_location so the
scripts/mcp_server.py main guard is not triggered during testing.
sandbox-policy compliance: all write paths use tmp_path.

22 tests pass (15 aggregate_directives + 7 MCP); 7 pre-existing CLI
tests still pass byte-identical.
2026-07-03 10:52:16 -04:00
ed a527f6224f feat(mcp-server): add aggregate_directives tool to scripts/mcp_server.py
Adds a new MCP tool that exposes scripts/aggregate_directives.py as an
LLM-callable endpoint. The tool reads a presets markdown file, resolves
each directive's v1.md, and returns the concatenated clean directive
bodies. metadata (meta.md) is never read.

Tool contract:
  name: aggregate_directives
  params: preset_path (string, default current_baseline.md), max_chars (int, default 0)
  result: text content (clean bodies) or 'ERROR: ...' string on failure

Dispatch runs the impl in asyncio.to_thread so the 66+ v1.md reads do not
block the MCP stdio loop. Errors from aggregate_directives are caught and
formatted as 'ERROR: aggregate_directives(<path>) failed: <type>: <msg>' so
the LLM can read the failure mode inline. Tool count: 45 (MCP_TOOL_SPECS)
+ 2 (run_powershell, aggregate_directives) = 47.

Added scripts/ to sys.path so 'from aggregate_directives import ...' works
inside the MCP server process; idempotent with existing project_root and src
path inserts.
2026-07-03 10:48:44 -04:00
ed 5df938805e refactor(aggregate_directives): expose importable aggregate_directives(preset_path, max_chars, project_root) function
Wraps the body-building core in a public aggregate_directives() function that
returns the rendered string and raises FileNotFoundError/ValueError on errors.
The existing aggregate() CLI wrapper catches those and preserves the prior
stdout/file output behavior. parse_preset now accepts an optional root param so
directive paths inside the preset resolve against a caller-supplied
project_root instead of always REPO_ROOT. No behavior change for the CLI; the
new function is the API surface used by the upcoming MCP server tool.
2026-07-03 10:46:19 -04:00
ed 7d7f88f823 test(aggregate_directives): assert every v1.md has top-level # header 2026-07-03 09:46:33 -04:00
ed 4d2179c38f feat(directives): add rule-statement header to 57-63 of 66 v1.md files 2026-07-03 09:45:50 -04:00
ed 17e3a37b41 feat(directives): add rule-statement header to 49-56 of 66 v1.md files 2026-07-03 09:45:49 -04:00
ed 8cf4b57a74 feat(directives): add rule-statement header to 41-48 of 66 v1.md files 2026-07-03 09:45:49 -04:00
ed ead7cf2869 feat(directives): add rule-statement header to 33-40 of 66 v1.md files 2026-07-03 09:45:48 -04:00
ed e9275236f2 feat(directives): add rule-statement header to 25-32 of 66 v1.md files 2026-07-03 09:45:47 -04:00
ed 4692d01c54 feat(directives): add rule-statement header to 17-24 of 66 v1.md files 2026-07-03 09:45:46 -04:00
ed 85ae99c6a5 feat(directives): add rule-statement header to 9-16 of 66 v1.md files 2026-07-03 09:45:46 -04:00
ed cf8eab9f79 feat(directives): add rule-statement header to 1-8 of 66 v1.md files 2026-07-03 09:45:45 -04:00
ed cd272e5c8e conductor(plan): mark Phase 4 expansion complete (E.1-E.5; 66 directives; aggregation script) 2026-07-03 00:05:42 -04:00
ed 8ef66e0287 chore(artifacts): keep throwaway expansion helpers in scripts/tier2/artifacts/ (per Tier 2 convention) 2026-07-03 00:05:08 -04:00
ed 465433e067 feat(directives): add 15 new directives (Phase A expansion) to current_baseline preset
Adds: ast_parse_insufficient, ast_verify_class_methods_after_edit,
contract_change_audit, convention_enforcement_4_mechanisms,
core_value_read_first, decorator_orphan_pitfall,
defer_not_catch_for_native_crashes, edit_small_incremental,
live_gui_session_scoped_no_restart, no_real_io_during_tests,
preserve_line_endings, reset_session_preserves_project_path,
test_narrow_not_kitchen_sink, undo_redo_100_snapshot_capacity,
verify_before_editing.

Total: 66 directives in the preset (51 original + 15 expansion).
2026-07-03 00:04:54 -04:00
ed 9d3222ddc0 feat(scripts): add scripts/aggregate_directives.py (presets -> clean body aggregation)
Aggregates v1.md bodies from a preset markdown into a single output stream.
NEVER reads meta.md (pollution fix). Stdlib-only; supports stdout and -o.

5 tests in tests/test_aggregate_directives.py cover: success path,
no-meta-md pollution, missing-file error, -o flag, no provenance leakage.
2026-07-03 00:03:51 -04:00
ed 454fac1bff feat(directives): harvest 2 directives from docs/guide_state_lifecycle.md (undo/redo 100-snapshot, reset preserves project path) 2026-07-02 23:56:33 -04:00
ed a758f0a4c9 feat(directives): harvest 5 directives from docs/guide_testing.md (sandbox overview, live_gui session-scoped, defer-not-catch, narrow tests, AST method visibility) 2026-07-02 23:56:26 -04:00