{"_id":"@drewdrewthis/titw","name":"@drewdrewthis/titw","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@drewdrewthis/titw","version":"0.1.0","description":"TITW — a GitHub-backed package manager for agent knowledge and behavior files","license":"MIT","repository":{"type":"git","url":"git+https://github.com/drewdrewthis/titw.git"},"keywords":["package-manager","agent","knowledge","claude","procedures","cli"],"type":"module","bin":{"titw":"dist/cli.js"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build && npm test","dev":"tsx src/cli.ts","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit"},"dependencies":{"commander":"^12.1.0","picomatch":"^4.0.2","semver":"^7.6.3","yaml":"^2.5.0","zod":"^3.23.8"},"devDependencies":{"@types/node":"^22.5.0","@types/picomatch":"^3.0.1","@types/semver":"^7.5.8","tsx":"^4.19.0","typescript":"^5.6.2","vitest":"^2.1.1"},"gitHead":"1646746bb7c34329742fdd8696cc0c23dd50a47f","_id":"@drewdrewthis/titw@0.1.0","bugs":{"url":"https://github.com/drewdrewthis/titw/issues"},"homepage":"https://github.com/drewdrewthis/titw#readme","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-VZPrHhAtNeC9w+wPfMd02CQtra4JqhCk/RaPNMKTl3BspYNKkvG2V5gYe+bssilcd05vpuXDc3N+6ao9w/qa+w==","shasum":"3f01bdf62b348a390c65ce3eac6705da0d0a42d6","tarball":"https://registry.npmjs.org/@drewdrewthis/titw/-/titw-0.1.0.tgz","fileCount":57,"unpackedSize":173173,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG2PU/zATNV0jKQYw1QaRlvabZjWfvyQ6pnUlDZDA2oNAiAUGvD39ZY9BrzKDzRD/y8zsBcsDWDZkYzTOwWgMXTe5w=="}]},"_npmUser":{"name":"drewdrewthis","email":"drewdrewthis@gmail.com"},"directories":{},"maintainers":[{"name":"drewdrewthis","email":"drewdrewthis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/titw_0.1.0_1787437915635_0.13955860725967173"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-22T22:31:55.424Z","0.1.0":"2026-08-22T22:31:55.781Z","modified":"2026-08-22T22:31:56.015Z"},"maintainers":[{"name":"drewdrewthis","email":"drewdrewthis@gmail.com"}],"description":"TITW — a GitHub-backed package manager for agent knowledge and behavior files","homepage":"https://github.com/drewdrewthis/titw#readme","keywords":["package-manager","agent","knowledge","claude","procedures","cli"],"repository":{"type":"git","url":"git+https://github.com/drewdrewthis/titw.git"},"bugs":{"url":"https://github.com/drewdrewthis/titw/issues"},"license":"MIT","readme":"# TITW — This Is The Way\n\nA GitHub-backed package manager for agent knowledge and behavior files.\n\nTITW installs versioned packages of procedures, principles, decisions, skills, hooks, and\nscripts; lets consumers select or omit individual files; records exact provenance in a\nlockfile; and materializes an atomic local projection for an agent runtime. GitHub is the\nreview/permissions/release layer; agent turns read local files — no server, registry, or\nnetwork call in the hot path.\n\nCompanion to the [procedures Claude plugin](https://github.com/drewdrewthis/claude-plugins/tree/main/plugins/procedures),\nwhich supplies the runtime lookup machinery (`/how-do-i`, procedure-scout, gates). TITW\npackages and versions the corpus that machinery reads.\n\n- Design: [docs/HANDOFF.md](docs/HANDOFF.md)\n- Resolved design calls: [DECISIONS.md](DECISIONS.md)\n\n## Status\n\nPre-v1. The vertical slice works: `install → select → sync → the procedures plugin queries\nthe projection`, proven end to end against a fixture corpus (`test/spike.procedures-plugin.test.ts`\nruns the real installed `query-records.sh` against a synced projection).\n\nAuthoring commands (`init`, `check`, `lint`, `build`, `publish`), dependency resolution, and\nactive components (skills/hooks) are not implemented yet.\n\n## Install\n\n```bash\nnpx -y @drewdrewthis/titw --help   # no install needed\nnpm install -g @drewdrewthis/titw  # or install the CLI globally\n```\n\nThe npm package is scoped (`@drewdrewthis/titw` — the registry rejected the\nunscoped `titw` as too similar to existing packages); the installed command is\nstill `titw`.\n\n## Working today\n\n```bash\ntitw install github:owner/repo --version \"^1.2.0\" --exclude \"knowledge/procedures/vm-only/**\"\ntitw install path:../local-package --include knowledge/principles/simple-first.md\ntitw sync                 # stage → validate → atomically activate → receipt\ntitw status               # environment, packages, active projection\ntitw files @scope/package # selected files and where each one projects\ntitw outdated             # current / wanted / latest, from the published manifest version\ntitw update [package]     # re-resolve locked package(s) against their recorded range\ntitw rollback             # re-activate the previous projection\n```\n\n`install`/`sync` take `--dry-run`; every inspection command takes `--json`. All state lives\nunder `$TITW_HOME` (default `$XDG_DATA_HOME/titw`, else `~/.local/share/titw`).\n\nWhen a file `sync` manages was edited locally, `sync` prompts (on a TTY) to replace it or\nkeep the edit — `--no-interactive` (or a non-TTY `stdin`, e.g. in CI) always replaces without\nasking, same as before.\n\n## Pointing the procedures plugin at the corpus\n\n`sync` writes the seven-store corpus to `$TITW_HOME/targets/claude/active/corpus`\n(`titw status` prints the path). The plugin reads it through its own corpus-root override —\nno plugin changes, no network:\n\n```bash\nQUERY_RECORDS_ROOT=\"$(titw status --json | jq -r '.targets[0].corpusRoot')\" \\\n  ~/.claude/plugins/marketplaces/drewdrewthis/plugins/procedures/scripts/query-records.sh \\\n  --keyword deployment\n```\n\n## Target CLI (design)\n\n```bash\n# author\ntitw init && titw check && titw build && titw publish --to github:owner/repo\n\n# consume\ntitw update && titw remove @scope/package\n```\n\n## Development\n\n```bash\nnpm install\nnpm test\nnpm run typecheck\n```\n","readmeFilename":"README.md","_rev":"1-2be36370352788ffaccc110d5b3ea2a1"}