diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-03-27 23:23:43 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-03-27 23:23:43 +0000 |
| commit | 7519de4e56323230d06cfc64b00df52339eb2434 (patch) | |
| tree | 87712be5ef45a6913601e729c18a67c20fee9f09 /.agent/narrative.md | |
Add modal-shell project with .agent/ config, mode stubs, ms dispatcher,
bare repo at /site/git.terst.org/repos/modal-shell.git, and ADR-001.
Diffstat (limited to '.agent/narrative.md')
| -rw-r--r-- | .agent/narrative.md | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/.agent/narrative.md b/.agent/narrative.md new file mode 100644 index 0000000..f14998e --- /dev/null +++ b/.agent/narrative.md @@ -0,0 +1,15 @@ +# Narrative + +## Origin + +modal-shell began as four zsh scripts in a Vagrant-based PHP project circa ~2014. The original `up.zsh` booted a VM and SSH'd in; sibling scripts (`mysql.zsh`, `phing.zsh`) set `VAGRANT_OPTS` before delegating to it. The pattern was right — intent-at-entry-point — but the implementation was buried in a single project and tied entirely to Vagrant and Phing. + +## The Insight Worth Keeping + +The composition model — "set context, call the base" — is sound. What was wrong was everything specific to the stack: Vagrant, Phing, hardcoded paths, unprotected env vars for secrets, no confirmation on destructive operations. + +The modal concept maps cleanly to modern tooling. `vagrant up && vagrant ssh` becomes `docker compose exec` or `nix develop`. `VAGRANT_OPTS` becomes proper mode files with sourced base environments. Phing becomes `just` or `make`. + +## Current Phase + +Greenfield rewrite. The original repo (`thepeterstone/modal-shell`) is reference only. The new implementation lives at `/workspace/modal-shell` and follows the project conventions established here. |
