ai-dev-workspace 0.1.0b5__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.
Files changed (135) hide show
  1. ai_dev_workspace-0.1.0b5/LICENSE +21 -0
  2. ai_dev_workspace-0.1.0b5/MANIFEST.in +12 -0
  3. ai_dev_workspace-0.1.0b5/PKG-INFO +74 -0
  4. ai_dev_workspace-0.1.0b5/README.md +40 -0
  5. ai_dev_workspace-0.1.0b5/ai_dev_workspace.egg-info/PKG-INFO +74 -0
  6. ai_dev_workspace-0.1.0b5/ai_dev_workspace.egg-info/SOURCES.txt +133 -0
  7. ai_dev_workspace-0.1.0b5/ai_dev_workspace.egg-info/dependency_links.txt +1 -0
  8. ai_dev_workspace-0.1.0b5/ai_dev_workspace.egg-info/entry_points.txt +3 -0
  9. ai_dev_workspace-0.1.0b5/ai_dev_workspace.egg-info/top_level.txt +1 -0
  10. ai_dev_workspace-0.1.0b5/bin/publish-release +34 -0
  11. ai_dev_workspace-0.1.0b5/bin/release-smoke +322 -0
  12. ai_dev_workspace-0.1.0b5/bin/ws +11 -0
  13. ai_dev_workspace-0.1.0b5/bin/ws-plugin +10 -0
  14. ai_dev_workspace-0.1.0b5/bin/ws-python +8 -0
  15. ai_dev_workspace-0.1.0b5/docs/ADVANCED.md +95 -0
  16. ai_dev_workspace-0.1.0b5/docs/AGENT-ORCHESTRATION.md +145 -0
  17. ai_dev_workspace-0.1.0b5/docs/ARCHITECTURE.md +66 -0
  18. ai_dev_workspace-0.1.0b5/docs/ASSIST-FEATURES.md +11 -0
  19. ai_dev_workspace-0.1.0b5/docs/CLIENT-VERIFICATION.md +40 -0
  20. ai_dev_workspace-0.1.0b5/docs/COMMANDS.md +309 -0
  21. ai_dev_workspace-0.1.0b5/docs/CONCEPTS.md +26 -0
  22. ai_dev_workspace-0.1.0b5/docs/DEMO.md +118 -0
  23. ai_dev_workspace-0.1.0b5/docs/MAINTAINING.md +46 -0
  24. ai_dev_workspace-0.1.0b5/docs/MCP-WORKFLOWS.md +15 -0
  25. ai_dev_workspace-0.1.0b5/docs/MCP.md +20 -0
  26. ai_dev_workspace-0.1.0b5/docs/MEASUREMENTS.md +55 -0
  27. ai_dev_workspace-0.1.0b5/docs/OVERVIEW.md +151 -0
  28. ai_dev_workspace-0.1.0b5/docs/PACKS.md +42 -0
  29. ai_dev_workspace-0.1.0b5/docs/PARALLEL-WORKERS.md +132 -0
  30. ai_dev_workspace-0.1.0b5/docs/PRINCIPLES.md +11 -0
  31. ai_dev_workspace-0.1.0b5/docs/PRIVATE-PACKS.md +14 -0
  32. ai_dev_workspace-0.1.0b5/docs/REPO-START.md +40 -0
  33. ai_dev_workspace-0.1.0b5/docs/ROADMAP.md +43 -0
  34. ai_dev_workspace-0.1.0b5/docs/SESSION-SEARCH.md +19 -0
  35. ai_dev_workspace-0.1.0b5/docs/SETUP.md +139 -0
  36. ai_dev_workspace-0.1.0b5/docs/TEAM-WORKSPACE.md +82 -0
  37. ai_dev_workspace-0.1.0b5/docs/TEAM.md +43 -0
  38. ai_dev_workspace-0.1.0b5/docs/TUTORIAL.md +184 -0
  39. ai_dev_workspace-0.1.0b5/docs/UPGRADE-CHECK.md +22 -0
  40. ai_dev_workspace-0.1.0b5/docs/WINDOWS.md +25 -0
  41. ai_dev_workspace-0.1.0b5/docs/demo.tape +25 -0
  42. ai_dev_workspace-0.1.0b5/docs/examples/frameworks/README.md +42 -0
  43. ai_dev_workspace-0.1.0b5/docs/examples/frameworks/adk-requirements.txt +2 -0
  44. ai_dev_workspace-0.1.0b5/docs/examples/frameworks/adk_agent.py +47 -0
  45. ai_dev_workspace-0.1.0b5/docs/examples/frameworks/common.py +40 -0
  46. ai_dev_workspace-0.1.0b5/docs/examples/frameworks/langgraph-requirements.txt +4 -0
  47. ai_dev_workspace-0.1.0b5/docs/examples/frameworks/langgraph_agent.py +31 -0
  48. ai_dev_workspace-0.1.0b5/docs/examples/frameworks/proof.json +42 -0
  49. ai_dev_workspace-0.1.0b5/docs/examples/frameworks/prove.py +37 -0
  50. ai_dev_workspace-0.1.0b5/docs/examples/mcp-protocol-proof.json +1 -0
  51. ai_dev_workspace-0.1.0b5/kit.json +1 -0
  52. ai_dev_workspace-0.1.0b5/mcp/server.py +342 -0
  53. ai_dev_workspace-0.1.0b5/packs/codex-worker/.gitignore +1 -0
  54. ai_dev_workspace-0.1.0b5/packs/codex-worker/AGENTS.snippet.md +4 -0
  55. ai_dev_workspace-0.1.0b5/packs/codex-worker/investigate.sh +19 -0
  56. ai_dev_workspace-0.1.0b5/packs/codex-worker/pack.json +7 -0
  57. ai_dev_workspace-0.1.0b5/packs/codex-worker/patch_modes.py +31 -0
  58. ai_dev_workspace-0.1.0b5/packs/codex-worker/selftest.sh +22 -0
  59. ai_dev_workspace-0.1.0b5/packs/codex-worker/setup.sh +9 -0
  60. ai_dev_workspace-0.1.0b5/packs/discipline/AGENTS.snippet.md +2 -0
  61. ai_dev_workspace-0.1.0b5/packs/discipline/pack.json +4 -0
  62. ai_dev_workspace-0.1.0b5/packs/guards/AGENTS.snippet.md +2 -0
  63. ai_dev_workspace-0.1.0b5/packs/guards/pack.json +5 -0
  64. ai_dev_workspace-0.1.0b5/packs/ios/AGENTS.snippet.md +6 -0
  65. ai_dev_workspace-0.1.0b5/packs/ios/pack.json +5 -0
  66. ai_dev_workspace-0.1.0b5/packs/ios/vault/Runbooks/App Store review replies.md +7 -0
  67. ai_dev_workspace-0.1.0b5/packs/ios/vault/Runbooks/iOS Simulator debugging.md +10 -0
  68. ai_dev_workspace-0.1.0b5/packs/ios/vault/Runbooks/iOS build triage.md +8 -0
  69. ai_dev_workspace-0.1.0b5/packs/library/AGENTS.snippet.md +5 -0
  70. ai_dev_workspace-0.1.0b5/packs/library/pack.json +3 -0
  71. ai_dev_workspace-0.1.0b5/packs/local-llm/AGENTS.snippet.md +3 -0
  72. ai_dev_workspace-0.1.0b5/packs/local-llm/pack.json +3 -0
  73. ai_dev_workspace-0.1.0b5/packs/local-llm/summarize.py +38 -0
  74. ai_dev_workspace-0.1.0b5/packs/ml/AGENTS.snippet.md +5 -0
  75. ai_dev_workspace-0.1.0b5/packs/ml/pack.json +3 -0
  76. ai_dev_workspace-0.1.0b5/packs/obsidian/AGENTS.snippet.md +3 -0
  77. ai_dev_workspace-0.1.0b5/packs/obsidian/pack.json +3 -0
  78. ai_dev_workspace-0.1.0b5/packs/obsidian/vault/.obsidian/app.json +7 -0
  79. ai_dev_workspace-0.1.0b5/packs/obsidian/vault/.obsidian/core-plugins.json +1 -0
  80. ai_dev_workspace-0.1.0b5/packs/obsidian/vault/.obsidian/templates.json +3 -0
  81. ai_dev_workspace-0.1.0b5/packs/web/AGENTS.snippet.md +5 -0
  82. ai_dev_workspace-0.1.0b5/packs/web/pack.json +3 -0
  83. ai_dev_workspace-0.1.0b5/pyproject.toml +3 -0
  84. ai_dev_workspace-0.1.0b5/setup.cfg +4 -0
  85. ai_dev_workspace-0.1.0b5/setup.py +55 -0
  86. ai_dev_workspace-0.1.0b5/skills/handoff/SKILL.md +8 -0
  87. ai_dev_workspace-0.1.0b5/skills/lesson/SKILL.md +7 -0
  88. ai_dev_workspace-0.1.0b5/skills/pickup/SKILL.md +7 -0
  89. ai_dev_workspace-0.1.0b5/skills/thinkbeforeact/SKILL.md +25 -0
  90. ai_dev_workspace-0.1.0b5/template/.gitignore +2 -0
  91. ai_dev_workspace-0.1.0b5/template/AGENTS.md +21 -0
  92. ai_dev_workspace-0.1.0b5/template/CLAUDE.md +1 -0
  93. ai_dev_workspace-0.1.0b5/template/routing-presets.json +10 -0
  94. ai_dev_workspace-0.1.0b5/template/routing.json +17 -0
  95. ai_dev_workspace-0.1.0b5/template/vault/Analysis/INDEX.md +5 -0
  96. ai_dev_workspace-0.1.0b5/template/vault/Feedback.md +2 -0
  97. ai_dev_workspace-0.1.0b5/template/vault/Learnings.md +2 -0
  98. ai_dev_workspace-0.1.0b5/template/vault/Product/INDEX.md +2 -0
  99. ai_dev_workspace-0.1.0b5/template/vault/Project/INDEX.md +2 -0
  100. ai_dev_workspace-0.1.0b5/template/vault/README.md +14 -0
  101. ai_dev_workspace-0.1.0b5/template/vault/Runbooks/Delegation.md +15 -0
  102. ai_dev_workspace-0.1.0b5/template/vault/Templates/Task.md +35 -0
  103. ai_dev_workspace-0.1.0b5/tools.json +10 -0
  104. ai_dev_workspace-0.1.0b5/ws/__init__.py +0 -0
  105. ai_dev_workspace-0.1.0b5/ws/assist.py +232 -0
  106. ai_dev_workspace-0.1.0b5/ws/audit.py +101 -0
  107. ai_dev_workspace-0.1.0b5/ws/cards.py +104 -0
  108. ai_dev_workspace-0.1.0b5/ws/cli.py +935 -0
  109. ai_dev_workspace-0.1.0b5/ws/codeburn.py +79 -0
  110. ai_dev_workspace-0.1.0b5/ws/core.py +3396 -0
  111. ai_dev_workspace-0.1.0b5/ws/demo.py +57 -0
  112. ai_dev_workspace-0.1.0b5/ws/discipline.py +56 -0
  113. ai_dev_workspace-0.1.0b5/ws/folder_io.py +107 -0
  114. ai_dev_workspace-0.1.0b5/ws/folder_publish.py +77 -0
  115. ai_dev_workspace-0.1.0b5/ws/guards.py +719 -0
  116. ai_dev_workspace-0.1.0b5/ws/knowledge.py +193 -0
  117. ai_dev_workspace-0.1.0b5/ws/memory_import.py +104 -0
  118. ai_dev_workspace-0.1.0b5/ws/native.py +185 -0
  119. ai_dev_workspace-0.1.0b5/ws/orchestration.py +347 -0
  120. ai_dev_workspace-0.1.0b5/ws/packaging.py +6 -0
  121. ai_dev_workspace-0.1.0b5/ws/packs.py +125 -0
  122. ai_dev_workspace-0.1.0b5/ws/plugin_runtime.py +44 -0
  123. ai_dev_workspace-0.1.0b5/ws/repo.py +648 -0
  124. ai_dev_workspace-0.1.0b5/ws/scope.py +53 -0
  125. ai_dev_workspace-0.1.0b5/ws/setup.py +116 -0
  126. ai_dev_workspace-0.1.0b5/ws/sharing.py +222 -0
  127. ai_dev_workspace-0.1.0b5/ws/team.py +131 -0
  128. ai_dev_workspace-0.1.0b5/ws/team_auto.py +87 -0
  129. ai_dev_workspace-0.1.0b5/ws/team_folder.py +167 -0
  130. ai_dev_workspace-0.1.0b5/ws/team_status.py +87 -0
  131. ai_dev_workspace-0.1.0b5/ws/team_sync.py +169 -0
  132. ai_dev_workspace-0.1.0b5/ws/team_ui.py +87 -0
  133. ai_dev_workspace-0.1.0b5/ws/transcripts.py +78 -0
  134. ai_dev_workspace-0.1.0b5/ws/upgrade.py +216 -0
  135. ai_dev_workspace-0.1.0b5/ws/workers.py +397 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AI Dev Workspace contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,12 @@
1
+ include kit.json tools.json LICENSE
2
+ graft template
3
+ graft packs
4
+ graft skills
5
+ graft mcp
6
+ graft bin
7
+ graft docs
8
+ prune tests
9
+ prune packs/codex-worker/runtime
10
+ global-exclude *.pyc .DS_Store
11
+ recursive-exclude * __pycache__/*
12
+ include README.md
@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.4
2
+ Name: ai-dev-workspace
3
+ Version: 0.1.0b5
4
+ Summary: Shared task memory for AI coding assistants: Claude Code, Codex, Cursor, Copilot, Gemini CLI
5
+ Home-page: https://github.com/Alenroyfeild/ai-dev-workspace
6
+ License: MIT
7
+ Project-URL: Documentation, https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/OVERVIEW.md
8
+ Project-URL: Changelog, https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/CHANGELOG.md
9
+ Project-URL: Issues, https://github.com/Alenroyfeild/ai-dev-workspace/issues
10
+ Project-URL: Source, https://github.com/Alenroyfeild/ai-dev-workspace
11
+ Keywords: ai coding assistant memory claude-code codex cursor copilot gemini-cli mcp agents context handoff
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Software Development
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Dynamic: classifier
25
+ Dynamic: description
26
+ Dynamic: description-content-type
27
+ Dynamic: home-page
28
+ Dynamic: keywords
29
+ Dynamic: license
30
+ Dynamic: license-file
31
+ Dynamic: project-url
32
+ Dynamic: requires-python
33
+ Dynamic: summary
34
+
35
+ # AI Dev Workspace
36
+
37
+ Switch between Claude Code and Codex without re-explaining your decisions. Your assistant remembers work between sessions in Markdown you own. It keeps decisions, the next step and what not to retry, and warns when files it names changed or disappeared. Try it before connecting a repo: `ws demo` · [5-minute tutorial](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/TUTORIAL.md) · [remove it](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/TUTORIAL.md#remove-it)
38
+ <!-- Demo GIF -->
39
+ ## Quick start
40
+
41
+ ```bash
42
+ pipx install ai-dev-workspace --pip-args='--pre' # beta; omit --pip-args after a stable release
43
+ cd ~/code/myapp && ws start
44
+ ```
45
+ Without pipx: `python3 -m venv ~/.local/share/ai-dev-workspace && ~/.local/share/ai-dev-workspace/bin/pip install --pre ai-dev-workspace`; put its `bin` directory on `PATH` before `ws start`. Prefer a Claude Code plugin? See the [plugin preview](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/ADVANCED.md#claude-code-plugin-preview).
46
+ ## Example
47
+ ```text
48
+ Session 1 — You: “Empty email returns missing_email; leave signup unchanged.”
49
+ Assistant: “I’ll trace login and keep the decision with this task.”
50
+ You: “Stop here; I’ll resume tomorrow.”
51
+ Session 2 — You: “Continue the login fix.”
52
+ Assistant: “The saved note says return missing_email and leave signup unchanged.”
53
+ You: “Yes, continue.”
54
+ ```
55
+ ## Results (small synthetic samples, not general productivity)
56
+ | Session 1 → session 2 | Without workspace | With workspace |
57
+ |---|---:|---:|
58
+ | Claude Code → Claude Code | 0/5 | **5/5** |
59
+ | Claude Code → Codex | 0/5 | **5/5** |
60
+ | Codex → Codex | 0/3 | **3/3** |
61
+
62
+ Later Codex → Codex runs (n=5 each) were less favourable: the workspace passed 1/5 and 2/5, while a plain `HANDOFF.md` control passed 4/5 and 5/5. See [bench/README.md](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/bench/README.md).
63
+ ## Team sharing
64
+ Your notes stay private. Share only what you approve, and your teammates' assistants start with it: after `ws start`, `ws team init <private-repo> --attest-private` (`--yes` in scripts) · `ws know add "Payments API rejects floats" --category domain --team` · `ws sync`. A teammate runs `ws team link <private-repo>`; their next brief shows the note, labelled as shared team context, and their own decisions still win. [Team quick start](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/TEAM-WORKSPACE.md#quick-start)
65
+ ## Compatibility
66
+ | Client | macOS | Linux/Windows |
67
+ |---|---|---|
68
+ | Claude Code | supported, tested live on macOS | CI-tested |
69
+ | Codex | supported, tested live on macOS | CI-tested |
70
+ | Cursor | supported, fixture-tested; live reports welcome | CI-tested |
71
+ | Copilot (VS Code) | supported, fixture-tested; live reports welcome | CI-tested |
72
+ | Gemini CLI | supported, fixture-tested; live reports welcome | CI-tested |
73
+
74
+ Testers on Cursor, Copilot (VS Code), or Gemini CLI: please share problems through [Something broke](https://github.com/Alenroyfeild/ai-dev-workspace/issues/new?template=bug.yml). · [Overview](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/OVERVIEW.md) · [Setup](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/SETUP.md) · [Commands](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/COMMANDS.md) · [Keeping corrections](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/COMMANDS.md#save-a-correction) · [Measurements](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/MEASUREMENTS.md) · [Client verification](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/CLIENT-VERIFICATION.md) · [Packs](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/PACKS.md) · [Team use](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/TEAM.md) · [Windows](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/WINDOWS.md) · [Roadmap](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/ROADMAP.md) · [License](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/LICENSE) <!-- mcp-name: io.github.Alenroyfeild/ai-dev-workspace mcp-name: io.github.alenroyfeild/ai-dev-workspace -->
@@ -0,0 +1,40 @@
1
+ # AI Dev Workspace
2
+
3
+ Switch between Claude Code and Codex without re-explaining your decisions. Your assistant remembers work between sessions in Markdown you own. It keeps decisions, the next step and what not to retry, and warns when files it names changed or disappeared. Try it before connecting a repo: `ws demo` · [5-minute tutorial](docs/TUTORIAL.md) · [remove it](docs/TUTORIAL.md#remove-it)
4
+ <!-- Demo GIF -->
5
+ ## Quick start
6
+
7
+ ```bash
8
+ pipx install ai-dev-workspace --pip-args='--pre' # beta; omit --pip-args after a stable release
9
+ cd ~/code/myapp && ws start
10
+ ```
11
+ Without pipx: `python3 -m venv ~/.local/share/ai-dev-workspace && ~/.local/share/ai-dev-workspace/bin/pip install --pre ai-dev-workspace`; put its `bin` directory on `PATH` before `ws start`. Prefer a Claude Code plugin? See the [plugin preview](docs/ADVANCED.md#claude-code-plugin-preview).
12
+ ## Example
13
+ ```text
14
+ Session 1 — You: “Empty email returns missing_email; leave signup unchanged.”
15
+ Assistant: “I’ll trace login and keep the decision with this task.”
16
+ You: “Stop here; I’ll resume tomorrow.”
17
+ Session 2 — You: “Continue the login fix.”
18
+ Assistant: “The saved note says return missing_email and leave signup unchanged.”
19
+ You: “Yes, continue.”
20
+ ```
21
+ ## Results (small synthetic samples, not general productivity)
22
+ | Session 1 → session 2 | Without workspace | With workspace |
23
+ |---|---:|---:|
24
+ | Claude Code → Claude Code | 0/5 | **5/5** |
25
+ | Claude Code → Codex | 0/5 | **5/5** |
26
+ | Codex → Codex | 0/3 | **3/3** |
27
+
28
+ Later Codex → Codex runs (n=5 each) were less favourable: the workspace passed 1/5 and 2/5, while a plain `HANDOFF.md` control passed 4/5 and 5/5. See [bench/README.md](bench/README.md).
29
+ ## Team sharing
30
+ Your notes stay private. Share only what you approve, and your teammates' assistants start with it: after `ws start`, `ws team init <private-repo> --attest-private` (`--yes` in scripts) · `ws know add "Payments API rejects floats" --category domain --team` · `ws sync`. A teammate runs `ws team link <private-repo>`; their next brief shows the note, labelled as shared team context, and their own decisions still win. [Team quick start](docs/TEAM-WORKSPACE.md#quick-start)
31
+ ## Compatibility
32
+ | Client | macOS | Linux/Windows |
33
+ |---|---|---|
34
+ | Claude Code | supported, tested live on macOS | CI-tested |
35
+ | Codex | supported, tested live on macOS | CI-tested |
36
+ | Cursor | supported, fixture-tested; live reports welcome | CI-tested |
37
+ | Copilot (VS Code) | supported, fixture-tested; live reports welcome | CI-tested |
38
+ | Gemini CLI | supported, fixture-tested; live reports welcome | CI-tested |
39
+
40
+ Testers on Cursor, Copilot (VS Code), or Gemini CLI: please share problems through [Something broke](https://github.com/Alenroyfeild/ai-dev-workspace/issues/new?template=bug.yml). · [Overview](docs/OVERVIEW.md) · [Setup](docs/SETUP.md) · [Commands](docs/COMMANDS.md) · [Keeping corrections](docs/COMMANDS.md#save-a-correction) · [Measurements](docs/MEASUREMENTS.md) · [Client verification](docs/CLIENT-VERIFICATION.md) · [Packs](docs/PACKS.md) · [Team use](docs/TEAM.md) · [Windows](docs/WINDOWS.md) · [Roadmap](docs/ROADMAP.md) · [License](LICENSE) <!-- mcp-name: io.github.Alenroyfeild/ai-dev-workspace mcp-name: io.github.alenroyfeild/ai-dev-workspace -->
@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.4
2
+ Name: ai-dev-workspace
3
+ Version: 0.1.0b5
4
+ Summary: Shared task memory for AI coding assistants: Claude Code, Codex, Cursor, Copilot, Gemini CLI
5
+ Home-page: https://github.com/Alenroyfeild/ai-dev-workspace
6
+ License: MIT
7
+ Project-URL: Documentation, https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/OVERVIEW.md
8
+ Project-URL: Changelog, https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/CHANGELOG.md
9
+ Project-URL: Issues, https://github.com/Alenroyfeild/ai-dev-workspace/issues
10
+ Project-URL: Source, https://github.com/Alenroyfeild/ai-dev-workspace
11
+ Keywords: ai coding assistant memory claude-code codex cursor copilot gemini-cli mcp agents context handoff
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Software Development
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Dynamic: classifier
25
+ Dynamic: description
26
+ Dynamic: description-content-type
27
+ Dynamic: home-page
28
+ Dynamic: keywords
29
+ Dynamic: license
30
+ Dynamic: license-file
31
+ Dynamic: project-url
32
+ Dynamic: requires-python
33
+ Dynamic: summary
34
+
35
+ # AI Dev Workspace
36
+
37
+ Switch between Claude Code and Codex without re-explaining your decisions. Your assistant remembers work between sessions in Markdown you own. It keeps decisions, the next step and what not to retry, and warns when files it names changed or disappeared. Try it before connecting a repo: `ws demo` · [5-minute tutorial](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/TUTORIAL.md) · [remove it](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/TUTORIAL.md#remove-it)
38
+ <!-- Demo GIF -->
39
+ ## Quick start
40
+
41
+ ```bash
42
+ pipx install ai-dev-workspace --pip-args='--pre' # beta; omit --pip-args after a stable release
43
+ cd ~/code/myapp && ws start
44
+ ```
45
+ Without pipx: `python3 -m venv ~/.local/share/ai-dev-workspace && ~/.local/share/ai-dev-workspace/bin/pip install --pre ai-dev-workspace`; put its `bin` directory on `PATH` before `ws start`. Prefer a Claude Code plugin? See the [plugin preview](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/ADVANCED.md#claude-code-plugin-preview).
46
+ ## Example
47
+ ```text
48
+ Session 1 — You: “Empty email returns missing_email; leave signup unchanged.”
49
+ Assistant: “I’ll trace login and keep the decision with this task.”
50
+ You: “Stop here; I’ll resume tomorrow.”
51
+ Session 2 — You: “Continue the login fix.”
52
+ Assistant: “The saved note says return missing_email and leave signup unchanged.”
53
+ You: “Yes, continue.”
54
+ ```
55
+ ## Results (small synthetic samples, not general productivity)
56
+ | Session 1 → session 2 | Without workspace | With workspace |
57
+ |---|---:|---:|
58
+ | Claude Code → Claude Code | 0/5 | **5/5** |
59
+ | Claude Code → Codex | 0/5 | **5/5** |
60
+ | Codex → Codex | 0/3 | **3/3** |
61
+
62
+ Later Codex → Codex runs (n=5 each) were less favourable: the workspace passed 1/5 and 2/5, while a plain `HANDOFF.md` control passed 4/5 and 5/5. See [bench/README.md](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/bench/README.md).
63
+ ## Team sharing
64
+ Your notes stay private. Share only what you approve, and your teammates' assistants start with it: after `ws start`, `ws team init <private-repo> --attest-private` (`--yes` in scripts) · `ws know add "Payments API rejects floats" --category domain --team` · `ws sync`. A teammate runs `ws team link <private-repo>`; their next brief shows the note, labelled as shared team context, and their own decisions still win. [Team quick start](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/TEAM-WORKSPACE.md#quick-start)
65
+ ## Compatibility
66
+ | Client | macOS | Linux/Windows |
67
+ |---|---|---|
68
+ | Claude Code | supported, tested live on macOS | CI-tested |
69
+ | Codex | supported, tested live on macOS | CI-tested |
70
+ | Cursor | supported, fixture-tested; live reports welcome | CI-tested |
71
+ | Copilot (VS Code) | supported, fixture-tested; live reports welcome | CI-tested |
72
+ | Gemini CLI | supported, fixture-tested; live reports welcome | CI-tested |
73
+
74
+ Testers on Cursor, Copilot (VS Code), or Gemini CLI: please share problems through [Something broke](https://github.com/Alenroyfeild/ai-dev-workspace/issues/new?template=bug.yml). · [Overview](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/OVERVIEW.md) · [Setup](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/SETUP.md) · [Commands](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/COMMANDS.md) · [Keeping corrections](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/COMMANDS.md#save-a-correction) · [Measurements](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/MEASUREMENTS.md) · [Client verification](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/CLIENT-VERIFICATION.md) · [Packs](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/PACKS.md) · [Team use](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/TEAM.md) · [Windows](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/WINDOWS.md) · [Roadmap](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/docs/ROADMAP.md) · [License](https://github.com/Alenroyfeild/ai-dev-workspace/blob/main/LICENSE) <!-- mcp-name: io.github.Alenroyfeild/ai-dev-workspace mcp-name: io.github.alenroyfeild/ai-dev-workspace -->
@@ -0,0 +1,133 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ kit.json
5
+ pyproject.toml
6
+ setup.py
7
+ tools.json
8
+ ai_dev_workspace.egg-info/PKG-INFO
9
+ ai_dev_workspace.egg-info/SOURCES.txt
10
+ ai_dev_workspace.egg-info/dependency_links.txt
11
+ ai_dev_workspace.egg-info/entry_points.txt
12
+ ai_dev_workspace.egg-info/top_level.txt
13
+ bin/publish-release
14
+ bin/release-smoke
15
+ bin/ws
16
+ bin/ws-plugin
17
+ bin/ws-python
18
+ docs/ADVANCED.md
19
+ docs/AGENT-ORCHESTRATION.md
20
+ docs/ARCHITECTURE.md
21
+ docs/ASSIST-FEATURES.md
22
+ docs/CLIENT-VERIFICATION.md
23
+ docs/COMMANDS.md
24
+ docs/CONCEPTS.md
25
+ docs/DEMO.md
26
+ docs/MAINTAINING.md
27
+ docs/MCP-WORKFLOWS.md
28
+ docs/MCP.md
29
+ docs/MEASUREMENTS.md
30
+ docs/OVERVIEW.md
31
+ docs/PACKS.md
32
+ docs/PARALLEL-WORKERS.md
33
+ docs/PRINCIPLES.md
34
+ docs/PRIVATE-PACKS.md
35
+ docs/REPO-START.md
36
+ docs/ROADMAP.md
37
+ docs/SESSION-SEARCH.md
38
+ docs/SETUP.md
39
+ docs/TEAM-WORKSPACE.md
40
+ docs/TEAM.md
41
+ docs/TUTORIAL.md
42
+ docs/UPGRADE-CHECK.md
43
+ docs/WINDOWS.md
44
+ docs/demo.tape
45
+ docs/examples/mcp-protocol-proof.json
46
+ docs/examples/frameworks/README.md
47
+ docs/examples/frameworks/adk-requirements.txt
48
+ docs/examples/frameworks/adk_agent.py
49
+ docs/examples/frameworks/common.py
50
+ docs/examples/frameworks/langgraph-requirements.txt
51
+ docs/examples/frameworks/langgraph_agent.py
52
+ docs/examples/frameworks/proof.json
53
+ docs/examples/frameworks/prove.py
54
+ mcp/server.py
55
+ packs/codex-worker/.gitignore
56
+ packs/codex-worker/AGENTS.snippet.md
57
+ packs/codex-worker/investigate.sh
58
+ packs/codex-worker/pack.json
59
+ packs/codex-worker/patch_modes.py
60
+ packs/codex-worker/selftest.sh
61
+ packs/codex-worker/setup.sh
62
+ packs/discipline/AGENTS.snippet.md
63
+ packs/discipline/pack.json
64
+ packs/guards/AGENTS.snippet.md
65
+ packs/guards/pack.json
66
+ packs/ios/AGENTS.snippet.md
67
+ packs/ios/pack.json
68
+ packs/ios/vault/Runbooks/App Store review replies.md
69
+ packs/ios/vault/Runbooks/iOS Simulator debugging.md
70
+ packs/ios/vault/Runbooks/iOS build triage.md
71
+ packs/library/AGENTS.snippet.md
72
+ packs/library/pack.json
73
+ packs/local-llm/AGENTS.snippet.md
74
+ packs/local-llm/pack.json
75
+ packs/local-llm/summarize.py
76
+ packs/ml/AGENTS.snippet.md
77
+ packs/ml/pack.json
78
+ packs/obsidian/AGENTS.snippet.md
79
+ packs/obsidian/pack.json
80
+ packs/obsidian/vault/.obsidian/app.json
81
+ packs/obsidian/vault/.obsidian/core-plugins.json
82
+ packs/obsidian/vault/.obsidian/templates.json
83
+ packs/web/AGENTS.snippet.md
84
+ packs/web/pack.json
85
+ skills/handoff/SKILL.md
86
+ skills/lesson/SKILL.md
87
+ skills/pickup/SKILL.md
88
+ skills/thinkbeforeact/SKILL.md
89
+ template/.gitignore
90
+ template/AGENTS.md
91
+ template/CLAUDE.md
92
+ template/routing-presets.json
93
+ template/routing.json
94
+ template/vault/Feedback.md
95
+ template/vault/Learnings.md
96
+ template/vault/README.md
97
+ template/vault/Analysis/INDEX.md
98
+ template/vault/Product/INDEX.md
99
+ template/vault/Project/INDEX.md
100
+ template/vault/Runbooks/Delegation.md
101
+ template/vault/Templates/Task.md
102
+ ws/__init__.py
103
+ ws/assist.py
104
+ ws/audit.py
105
+ ws/cards.py
106
+ ws/cli.py
107
+ ws/codeburn.py
108
+ ws/core.py
109
+ ws/demo.py
110
+ ws/discipline.py
111
+ ws/folder_io.py
112
+ ws/folder_publish.py
113
+ ws/guards.py
114
+ ws/knowledge.py
115
+ ws/memory_import.py
116
+ ws/native.py
117
+ ws/orchestration.py
118
+ ws/packaging.py
119
+ ws/packs.py
120
+ ws/plugin_runtime.py
121
+ ws/repo.py
122
+ ws/scope.py
123
+ ws/setup.py
124
+ ws/sharing.py
125
+ ws/team.py
126
+ ws/team_auto.py
127
+ ws/team_folder.py
128
+ ws/team_status.py
129
+ ws/team_sync.py
130
+ ws/team_ui.py
131
+ ws/transcripts.py
132
+ ws/upgrade.py
133
+ ws/workers.py
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ ai-dev-workspace = ws.cli:mcp_main
3
+ ws = ws.cli:main
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ tag=${1:?usage: publish-release TAG NOTES_FILE}
5
+ notes=${2:?usage: publish-release TAG NOTES_FILE}
6
+
7
+ if view_error=$(gh release view "$tag" 2>&1 >/dev/null); then
8
+ gh release edit "$tag" --notes-file "$notes" --prerelease=false --latest
9
+ echo "Release $tag already exists; updated notes."
10
+ exit 0
11
+ fi
12
+
13
+ case "$view_error" in
14
+ *"HTTP 404:"*|*"release not found"*) ;;
15
+ *) echo "Could not check release $tag; refusing to create: $view_error" >&2; exit 1 ;;
16
+ esac
17
+
18
+ set +e
19
+ create_error=$(gh release create "$tag" --title "$tag" --notes-file "$notes" --latest 2>&1)
20
+ create_status=$?
21
+ set -e
22
+ if [ "$create_status" -eq 0 ]; then
23
+ [ -z "$create_error" ] || echo "$create_error"
24
+ exit 0
25
+ fi
26
+
27
+ if gh release view "$tag" >/dev/null 2>&1; then
28
+ gh release edit "$tag" --notes-file "$notes" --prerelease=false --latest
29
+ echo "Release $tag appeared during creation; updated notes."
30
+ exit 0
31
+ fi
32
+
33
+ echo "$create_error" >&2
34
+ exit "$create_status"