bpsai-pair 0.2.0__tar.gz → 0.2.1__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.

Potentially problematic release.


This version of bpsai-pair might be problematic. Click here for more details.

Files changed (62) hide show
  1. bpsai_pair-0.2.1/PKG-INFO +89 -0
  2. bpsai_pair-0.2.1/README.md +78 -0
  3. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/__init__.py +1 -1
  4. bpsai_pair-0.2.1/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.agentpackignore +12 -0
  5. bpsai_pair-0.2.1/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/project_tree.yml +54 -0
  6. bpsai_pair-0.2.1/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/AGENTS.md +29 -0
  7. bpsai_pair-0.2.1/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CLAUDE.md +32 -0
  8. bpsai_pair-0.2.1/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md +15 -0
  9. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md.bak → bpsai_pair-0.2.1/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md +1 -0
  10. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/scripts/README.md +1 -1
  11. bpsai_pair-0.2.1/bpsai_pair.egg-info/PKG-INFO +89 -0
  12. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair.egg-info/SOURCES.txt +2 -2
  13. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/pyproject.toml +2 -2
  14. bpsai_pair-0.2.0/PKG-INFO +0 -29
  15. bpsai_pair-0.2.0/README.md +0 -18
  16. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.agentpackignore +0 -1
  17. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/project_tree.yml +0 -33
  18. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md +0 -6
  19. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md.bak +0 -196
  20. bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md +0 -1
  21. bpsai_pair-0.2.0/bpsai_pair.egg-info/PKG-INFO +0 -29
  22. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/MANIFEST.in +0 -0
  23. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/__main__.py +0 -0
  24. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/adapters.py +0 -0
  25. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/cli.py +0 -0
  26. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/config.py +0 -0
  27. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/cookiecutter.json +0 -0
  28. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.editorconfig +0 -0
  29. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  30. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +0 -0
  31. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitignore +0 -0
  32. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitleaks.toml +0 -0
  33. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.pre-commit-config.yaml +0 -0
  34. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CODEOWNERS +0 -0
  35. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CONTRIBUTING.md +0 -0
  36. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/SECURITY.md +0 -0
  37. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/directory_notes/.gitkeep +0 -0
  38. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/project_tree.md +0 -0
  39. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/deep_research.yml +0 -0
  40. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/implementation.yml +0 -0
  41. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/roadmap.yml +0 -0
  42. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/src/.gitkeep +0 -0
  43. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/templates/adr.md +0 -0
  44. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/templates/directory_note.md +0 -0
  45. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/tests/example_contract/README.md +0 -0
  46. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/tests/example_integration/README.md +0 -0
  47. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/init_bundled_cli.py +0 -0
  48. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/jsonio.py +0 -0
  49. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/ops.py +0 -0
  50. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/pyutils.py +0 -0
  51. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair/utils.py +0 -0
  52. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair.egg-info/dependency_links.txt +0 -0
  53. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair.egg-info/entry_points.txt +0 -0
  54. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair.egg-info/requires.txt +0 -0
  55. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/bpsai_pair.egg-info/top_level.txt +0 -0
  56. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/setup.cfg +0 -0
  57. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/tests/test_cli.py +0 -0
  58. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/tests/test_config.py +0 -0
  59. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/tests/test_context_sync.py +0 -0
  60. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/tests/test_feature_branch_type.py +0 -0
  61. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/tests/test_ops.py +0 -0
  62. {bpsai_pair-0.2.0 → bpsai_pair-0.2.1}/tests/test_pack_preview.py +0 -0
@@ -0,0 +1,89 @@
1
+ Metadata-Version: 2.4
2
+ Name: bpsai-pair
3
+ Version: 0.2.1
4
+ Summary: CLI for AI pair-coding workflow
5
+ Author: BPS AI Software
6
+ Requires-Python: >=3.9
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: typer>=0.12
9
+ Requires-Dist: rich>=13.7
10
+ Requires-Dist: pyyaml>=6.0
11
+
12
+ # bpsai-pair CLI
13
+
14
+ The PairCoder CLI tool for AI pair programming workflows.
15
+
16
+ ## Quick Start
17
+
18
+ ### Install from PyPI
19
+ ```bash
20
+ pip install bpsai-pair
21
+ bpsai-pair --help
22
+ ```
23
+
24
+ ### Development Install
25
+ ```bash
26
+ cd tools/cli
27
+ pip install -e .
28
+ bpsai-pair --help
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ ### Initialize scaffolding (uses bundled template)
34
+ ```bash
35
+ bpsai-pair-init
36
+ # or with main CLI:
37
+ bpsai-pair init
38
+ ```
39
+
40
+ ### Create feature branch
41
+ ```bash
42
+ bpsai-pair feature auth-refactor \
43
+ --type refactor \
44
+ --primary "Decouple auth via DI" \
45
+ --phase "Refactor auth module + tests"
46
+ ```
47
+
48
+ ### Pack context for AI
49
+ ```bash
50
+ bpsai-pair pack --out agent_pack.tgz
51
+ bpsai-pair pack --list # Preview files
52
+ bpsai-pair pack --json # JSON output
53
+ ```
54
+
55
+ ### Update context loop
56
+ ```bash
57
+ bpsai-pair context-sync \
58
+ --last "Initialized scaffolding" \
59
+ --next "Set up CI secrets" \
60
+ --blockers "None"
61
+ ```
62
+
63
+ ## Commands
64
+
65
+ - `bpsai-pair init` - Initialize repo with PairCoder structure
66
+ - `bpsai-pair-init` - Quick init with bundled template (no args)
67
+ - `bpsai-pair feature` - Create feature/fix/refactor branch
68
+ - `bpsai-pair pack` - Package context for AI agents
69
+ - `bpsai-pair context-sync` - Update the Context Loop
70
+ - `bpsai-pair status` - Show current state
71
+ - `bpsai-pair validate` - Check repo structure
72
+ - `bpsai-pair ci` - Run local CI checks
73
+
74
+ ## Development
75
+
76
+ Run tests:
77
+ ```bash
78
+ pytest
79
+ ```
80
+
81
+ Build wheel:
82
+ ```bash
83
+ python -m build
84
+ ```
85
+
86
+ ## Template
87
+
88
+ The CLI bundles a cookiecutter template in `bpsai_pair/data/cookiecutter-paircoder/`
89
+ that gets installed with the package and used by `bpsai-pair-init`.
@@ -0,0 +1,78 @@
1
+ # bpsai-pair CLI
2
+
3
+ The PairCoder CLI tool for AI pair programming workflows.
4
+
5
+ ## Quick Start
6
+
7
+ ### Install from PyPI
8
+ ```bash
9
+ pip install bpsai-pair
10
+ bpsai-pair --help
11
+ ```
12
+
13
+ ### Development Install
14
+ ```bash
15
+ cd tools/cli
16
+ pip install -e .
17
+ bpsai-pair --help
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ### Initialize scaffolding (uses bundled template)
23
+ ```bash
24
+ bpsai-pair-init
25
+ # or with main CLI:
26
+ bpsai-pair init
27
+ ```
28
+
29
+ ### Create feature branch
30
+ ```bash
31
+ bpsai-pair feature auth-refactor \
32
+ --type refactor \
33
+ --primary "Decouple auth via DI" \
34
+ --phase "Refactor auth module + tests"
35
+ ```
36
+
37
+ ### Pack context for AI
38
+ ```bash
39
+ bpsai-pair pack --out agent_pack.tgz
40
+ bpsai-pair pack --list # Preview files
41
+ bpsai-pair pack --json # JSON output
42
+ ```
43
+
44
+ ### Update context loop
45
+ ```bash
46
+ bpsai-pair context-sync \
47
+ --last "Initialized scaffolding" \
48
+ --next "Set up CI secrets" \
49
+ --blockers "None"
50
+ ```
51
+
52
+ ## Commands
53
+
54
+ - `bpsai-pair init` - Initialize repo with PairCoder structure
55
+ - `bpsai-pair-init` - Quick init with bundled template (no args)
56
+ - `bpsai-pair feature` - Create feature/fix/refactor branch
57
+ - `bpsai-pair pack` - Package context for AI agents
58
+ - `bpsai-pair context-sync` - Update the Context Loop
59
+ - `bpsai-pair status` - Show current state
60
+ - `bpsai-pair validate` - Check repo structure
61
+ - `bpsai-pair ci` - Run local CI checks
62
+
63
+ ## Development
64
+
65
+ Run tests:
66
+ ```bash
67
+ pytest
68
+ ```
69
+
70
+ Build wheel:
71
+ ```bash
72
+ python -m build
73
+ ```
74
+
75
+ ## Template
76
+
77
+ The CLI bundles a cookiecutter template in `bpsai_pair/data/cookiecutter-paircoder/`
78
+ that gets installed with the package and used by `bpsai-pair-init`.
@@ -2,7 +2,7 @@
2
2
  bpsai_pair package
3
3
  """
4
4
 
5
- __version__ = "0.2.0"
5
+ __version__ = "0.2.1"
6
6
 
7
7
  # Make modules available at package level
8
8
  from . import cli
@@ -0,0 +1,12 @@
1
+ # Default agent pack exclusions
2
+ .git/
3
+ .venv/
4
+ __pycache__/
5
+ node_modules/
6
+ dist/
7
+ build/
8
+ *.log
9
+ *.bak
10
+ *.tgz
11
+ *.tar.gz
12
+ *.zip
@@ -0,0 +1,54 @@
1
+ name: Refresh Project Tree
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '17 3 * * *' # Daily at 03:17 UTC
6
+ workflow_dispatch: {}
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ jobs:
12
+ refresh:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - name: Generate project tree
18
+ run: |
19
+ TS=$(date -u +%Y-%m-%dT%H:%M:%SZ)
20
+ echo "# Project Tree (snapshot)" > context/project_tree.md
21
+ echo "_Generated: ${TS}_" >> context/project_tree.md
22
+ echo "" >> context/project_tree.md
23
+ echo '```' >> context/project_tree.md
24
+
25
+ # Use find to create tree (cross-platform)
26
+ find . \
27
+ -path './.git' -prune -o \
28
+ -path './node_modules' -prune -o \
29
+ -path './dist' -prune -o \
30
+ -path './build' -prune -o \
31
+ -path './.venv' -prune -o \
32
+ -path './__pycache__' -prune -o \
33
+ -path './tools/cli/dist' -prune -o \
34
+ -path './tools/cli/build' -prune -o \
35
+ -path './**/*.egg-info' -prune -o \
36
+ -type f -print -o \
37
+ -type d -print | \
38
+ sed 's|^\./||' | \
39
+ grep -v '^\.$' | \
40
+ sort >> context/project_tree.md
41
+
42
+ echo '```' >> context/project_tree.md
43
+
44
+ - name: Commit changes if any
45
+ run: |
46
+ git config user.name "github-actions[bot]"
47
+ git config user.email "github-actions[bot]@users.noreply.github.com"
48
+ git add context/project_tree.md || true
49
+ if ! git diff --cached --quiet; then
50
+ git commit -m "chore(context): refresh project_tree snapshot [skip ci]"
51
+ git push
52
+ else
53
+ echo "No changes to commit."
54
+ fi
@@ -0,0 +1,29 @@
1
+ # Agents Guide (Root Pointer)
2
+
3
+ Welcome, AI agent! This project uses PairCoder for AI pair programming.
4
+
5
+ ## Where to Start
6
+
7
+ All instructions, context, and project information are maintained in the `/context` directory:
8
+
9
+ 1. **Read first:** `/context/agents.md` - Complete playbook and guidelines
10
+ 2. **Current state:** `/context/development.md` - Roadmap and Context Loop
11
+ 3. **File structure:** `/context/project_tree.md` - Repository layout
12
+ 4. **Component docs:** `/context/directory_notes/` - Directory-specific guidance
13
+
14
+ ## Critical Reminder
15
+
16
+ Always check the Context Loop at the end of `/context/development.md` for:
17
+ - **Overall goal is:** The project's primary objective
18
+ - **Last action was:** What was just completed
19
+ - **Next action will be:** The immediate next step
20
+ - **Blockers/Risks:** Any issues needing attention
21
+
22
+ ## After Making Changes
23
+
24
+ Update the Context Loop using:
25
+ ```bash
26
+ bpsai-pair context-sync --last "What you did" --next "Next step" --blockers "Any issues"
27
+ ```
28
+
29
+ Begin by reading `/context/agents.md` for complete instructions.
@@ -0,0 +1,32 @@
1
+ # Claude Guide (Root Pointer)
2
+
3
+ Hello Claude! This project follows PairCoder conventions for AI pair programming.
4
+
5
+ ## Getting Started
6
+
7
+ Your instructions are organized in the `/context` directory:
8
+
9
+ 1. **Start here:** `/context/agents.md` - Full AI pairing playbook
10
+ 2. **Project state:** `/context/development.md` - Current goals and progress
11
+ 3. **Repository map:** `/context/project_tree.md` - File structure reference
12
+
13
+ ## Working in This Repository
14
+
15
+ Before making any changes:
16
+ - Review the Context Loop in `/context/development.md`
17
+ - Understand the current phase and next actions
18
+ - Check for any blockers or risks
19
+
20
+ After making changes:
21
+ - Update the Context Loop to maintain continuity
22
+ - Use the provided CLI command or edit directly
23
+ - Keep changes focused and well-documented
24
+
25
+ ## PairCoder Principles
26
+
27
+ - Maintain the Context Loop discipline
28
+ - Make small, reversible changes
29
+ - Add tests before implementing features
30
+ - Follow the project's established patterns
31
+
32
+ See `/context/agents.md` for detailed instructions.
@@ -0,0 +1,15 @@
1
+ # Agents Guide
2
+
3
+ This project uses a **Context Loop**. Always keep these fields current:
4
+
5
+ - **Overall goal is:** Single-sentence mission
6
+ - **Last action was:** What just completed
7
+ - **Next action will be:** The very next step
8
+ - **Blockers:** Known issues or decisions needed
9
+
10
+ ### Working Rules for Agents\n- Do not modify or examine ignored directories (see `.agentpackignore`). Assume large assets exist even if excluded.\n- Prefer minimal, reversible changes.\n- After committing code, run `bpsai-pair context-sync` to update the loop.\n- Request a new context pack when the tree or docs change significantly.\n\n### Context Pack\nRun `bpsai-pair pack --out agent_pack.tgz` and upload to your session.\n
11
+ ---
12
+
13
+ ## Branch Discipline
14
+ - Use `--type feature|fix|refactor` when creating features.
15
+ - Conventional Commits recommended.
@@ -8,3 +8,4 @@
8
8
  - **Overall goal is:** (set by feature)
9
9
  - **Last action was:** (set by feature)
10
10
  - **Next action will be:** (set by feature)
11
+ - **Blockers:** (set by feature)
@@ -1,6 +1,6 @@
1
1
  # Scripts directory (intentionally minimal)
2
2
 
3
- This project uses the **PairCoder CLI** (Python) — no Bash scripts required.
3
+ This project uses the **PairCoder CLI** (Python) — Bash scripts have been deprecated.
4
4
  Common commands:
5
5
 
6
6
  ```bash
@@ -0,0 +1,89 @@
1
+ Metadata-Version: 2.4
2
+ Name: bpsai-pair
3
+ Version: 0.2.1
4
+ Summary: CLI for AI pair-coding workflow
5
+ Author: BPS AI Software
6
+ Requires-Python: >=3.9
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: typer>=0.12
9
+ Requires-Dist: rich>=13.7
10
+ Requires-Dist: pyyaml>=6.0
11
+
12
+ # bpsai-pair CLI
13
+
14
+ The PairCoder CLI tool for AI pair programming workflows.
15
+
16
+ ## Quick Start
17
+
18
+ ### Install from PyPI
19
+ ```bash
20
+ pip install bpsai-pair
21
+ bpsai-pair --help
22
+ ```
23
+
24
+ ### Development Install
25
+ ```bash
26
+ cd tools/cli
27
+ pip install -e .
28
+ bpsai-pair --help
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ ### Initialize scaffolding (uses bundled template)
34
+ ```bash
35
+ bpsai-pair-init
36
+ # or with main CLI:
37
+ bpsai-pair init
38
+ ```
39
+
40
+ ### Create feature branch
41
+ ```bash
42
+ bpsai-pair feature auth-refactor \
43
+ --type refactor \
44
+ --primary "Decouple auth via DI" \
45
+ --phase "Refactor auth module + tests"
46
+ ```
47
+
48
+ ### Pack context for AI
49
+ ```bash
50
+ bpsai-pair pack --out agent_pack.tgz
51
+ bpsai-pair pack --list # Preview files
52
+ bpsai-pair pack --json # JSON output
53
+ ```
54
+
55
+ ### Update context loop
56
+ ```bash
57
+ bpsai-pair context-sync \
58
+ --last "Initialized scaffolding" \
59
+ --next "Set up CI secrets" \
60
+ --blockers "None"
61
+ ```
62
+
63
+ ## Commands
64
+
65
+ - `bpsai-pair init` - Initialize repo with PairCoder structure
66
+ - `bpsai-pair-init` - Quick init with bundled template (no args)
67
+ - `bpsai-pair feature` - Create feature/fix/refactor branch
68
+ - `bpsai-pair pack` - Package context for AI agents
69
+ - `bpsai-pair context-sync` - Update the Context Loop
70
+ - `bpsai-pair status` - Show current state
71
+ - `bpsai-pair validate` - Check repo structure
72
+ - `bpsai-pair ci` - Run local CI checks
73
+
74
+ ## Development
75
+
76
+ Run tests:
77
+ ```bash
78
+ pytest
79
+ ```
80
+
81
+ Build wheel:
82
+ ```bash
83
+ python -m build
84
+ ```
85
+
86
+ ## Template
87
+
88
+ The CLI bundles a cookiecutter template in `bpsai_pair/data/cookiecutter-paircoder/`
89
+ that gets installed with the package and used by `bpsai-pair-init`.
@@ -23,6 +23,8 @@ bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.editorconf
23
23
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitignore
24
24
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitleaks.toml
25
25
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.pre-commit-config.yaml
26
+ bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/AGENTS.md
27
+ bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CLAUDE.md
26
28
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CODEOWNERS
27
29
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CONTRIBUTING.md
28
30
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/SECURITY.md
@@ -30,9 +32,7 @@ bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/PUL
30
32
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/ci.yml
31
33
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/project_tree.yml
32
34
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md
33
- bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md.bak
34
35
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md
35
- bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md.bak
36
36
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/project_tree.md
37
37
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/directory_notes/.gitkeep
38
38
  bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/deep_research.yml
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  readme = "README.md"
3
3
  name = "bpsai-pair"
4
- version = "0.2.0"
4
+ version = "0.2.1"
5
5
  description = "CLI for AI pair-coding workflow"
6
6
  requires-python = ">=3.9"
7
7
  dependencies = [ "typer>=0.12", "rich>=13.7", "pyyaml>=6.0",]
@@ -22,4 +22,4 @@ bpsai-pair-init = "bpsai_pair.init_bundled_cli:main"
22
22
  include-package-data = true
23
23
 
24
24
  [tool.setuptools.package-data]
25
- bpsai_pair = ["data/**"]
25
+ bpsai_pair = ["data/**/*"]
bpsai_pair-0.2.0/PKG-INFO DELETED
@@ -1,29 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: bpsai-pair
3
- Version: 0.2.0
4
- Summary: CLI for AI pair-coding workflow
5
- Author: BPS AI Software
6
- Requires-Python: >=3.9
7
- Description-Content-Type: text/markdown
8
- Requires-Dist: typer>=0.12
9
- Requires-Dist: rich>=13.7
10
- Requires-Dist: pyyaml>=6.0
11
-
12
-
13
- # bpsai-pair CLI
14
-
15
- ## Quick start (local, un-packaged)
16
- ```
17
- python -m tools.cli.bpsai_pair --help
18
- python -m tools.cli.bpsai_pair init tools/cookiecutter-paircoder
19
- python -m tools.cli.bpsai_pair feature auth-di --primary "Decouple auth via DI" --phase "Refactor auth + tests"
20
- python -m tools.cli.bpsai_pair pack --extra README.md
21
- python -m tools.cli.bpsai_pair context-sync --last "initialized scaffolding" --nxt "set up CI secrets" --blockers "none"
22
- ```
23
-
24
- ## Install as a CLI
25
- ```
26
- cd tools/cli
27
- pip install -e .
28
- # now available as: bpsai-pair --help
29
- ```
@@ -1,18 +0,0 @@
1
-
2
- # bpsai-pair CLI
3
-
4
- ## Quick start (local, un-packaged)
5
- ```
6
- python -m tools.cli.bpsai_pair --help
7
- python -m tools.cli.bpsai_pair init tools/cookiecutter-paircoder
8
- python -m tools.cli.bpsai_pair feature auth-di --primary "Decouple auth via DI" --phase "Refactor auth + tests"
9
- python -m tools.cli.bpsai_pair pack --extra README.md
10
- python -m tools.cli.bpsai_pair context-sync --last "initialized scaffolding" --nxt "set up CI secrets" --blockers "none"
11
- ```
12
-
13
- ## Install as a CLI
14
- ```
15
- cd tools/cli
16
- pip install -e .
17
- # now available as: bpsai-pair --help
18
- ```
@@ -1 +0,0 @@
1
- # Default agent pack exclusions\n.git/\n.venv/\n__pycache__/\nnode_modules/\ndist/\nbuild/\n*.log\n*.bak\n*.tgz\n*.tar.gz\n*.zip\n
@@ -1,33 +0,0 @@
1
-
2
- name: Refresh Project Tree
3
-
4
- on:
5
- schedule:
6
- - cron: 17 3 CODEOWNERS context CONTRIBUTING.md docs infra prompts scripts SECURITY.md services src templates tests tools CODEOWNERS context CONTRIBUTING.md docs infra prompts scripts SECURITY.md services src templates tests tools *
7
- workflow_dispatch: {}
8
-
9
- permissions:
10
- contents: write
11
-
12
- jobs:
13
- refresh:
14
- runs-on: ubuntu-latest
15
- steps:
16
- - uses: actions/checkout@v4
17
- - name: Generate project tree
18
- run: |
19
- TS=$(date -u +%Y-%m-%dT%H:%M:%SZ)
20
- echo "# Project Tree (snapshot)" > context/project_tree.md
21
- echo "_Generated: ${TS}_" >> context/project_tree.md
22
- echo >> context/project_tree.md
23
- echo >> context/project_tree.md
24
- - name: Commit changes if any
25
- run: |
26
- git config user.name "github-actions"
27
- git config user.email "actions@github.com"
28
- git add context/project_tree.md || true
29
- if ! git diff --cached --quiet; then
30
- git commit -m "chore(context): refresh project_tree snapshot" && git push;
31
- else
32
- echo "No changes to commit.";
33
- fi
@@ -1,6 +0,0 @@
1
- # Agents Guide\n\nThis project uses a **Context Loop**. Always keep these fields current:\n\n- **Overall goal is:** Single-sentence mission\n- **Last action was:** What just completed\n- **Next action will be:** The very next step\n- **Blockers:** Known issues or decisions needed\n\n### Working Rules for Agents\n- Do not modify or examine ignored directories (see `.agentpackignore`). Assume large assets exist even if excluded.\n- Prefer minimal, reversible changes.\n- After committing code, run `bpsai-pair context-sync` to update the loop.\n- Request a new context pack when the tree or docs change significantly.\n\n### Context Pack\nRun `bpsai-pair pack --out agent_pack.tgz` and upload to your session.\n
2
- ---
3
-
4
- ## Branch Discipline
5
- - Use `--type feature|fix|refactor` when creating features.
6
- - Conventional Commits recommended.
@@ -1,196 +0,0 @@
1
- # Agents Guide — AI Pair Coding Playbook
2
-
3
- **Purpose:** Make GPT-5 / Claude / CodeX effective partners for {{ cookiecutter.primary_goal }} while improving modularity, maintainability, and testability.
4
-
5
- **Audience:** Engineers, Tech Leads, and AI Agents connected to this repo.
6
-
7
- ---
8
-
9
- ## 0) Ground Rules (READ FIRST)
10
-
11
- * **Single Source of Truth:** This repository and the files in `/context` are canonical for all agent runs.
12
- * **Safety First:** No destructive ops without backups and a PR. Agents must create `*.bak` or use Git branches.
13
- * **Tests Before Changes:** Add/extend tests that fail *before* implementing a fix/refactor.
14
- * **Small, Reviewable Diffs:** Keep changes scoped; open PRs early; link to the relevant roadmap task.
15
- * **Update Context Every Run:** Always persist “Overall/Last/Next” (see §6) after actions.
16
-
17
- ---
18
-
19
- ## 1) Repo Layout & Context Discipline
20
-
21
- > Keep the agent’s attention on code that matters. Avoid token waste and blind spots.
22
-
23
- * **Project Tree (authoritative sketch):**
24
-
25
- ```
26
- .
27
- ├─ /src # Application code
28
- ├─ /tests # Unit/integration tests
29
- ├─ /services # External adapters, API clients
30
- ├─ /infra # IaC / deployment (optional)
31
- ├─ /docs # Human-readable docs
32
- ├─ /context # Agent context files (canonical)
33
- │ ├─ development.md
34
- │ ├─ agents.md
35
- │ ├─ project_tree.md
36
- │ └─ directory_notes/
37
- ├─ /assets/images # Large/media (EXCLUDED from agent context)
38
- └─ ...
39
- ```
40
-
41
- * **Explicit Exclusions:** `/assets/images`, `/dist`, `/build`, `/node_modules`, binaries, large JSON/CSV.
42
- Agents must **assume these exist** and avoid recommending moves/rewrites.
43
-
44
- * **Directory Notes (optional but powerful):**
45
- Add `/context/directory_notes/<dir>.md` with:
46
-
47
- * Purpose, entry points, invariants, dependency direction.
48
- * “Do/Don’t” for this directory.
49
- * Local glossary (domain terms, DTOs).
50
- * Known pitfalls.
51
-
52
- ---
53
-
54
- ## 2) Branching & PR Conventions
55
-
56
- * **Branch names:** `feature/<short-goal>` or `refactor/<module>` or `fix/<ticket-id>`
57
- * **Create branch from:** `main`
58
- * **PR template must include:**
59
-
60
- * Goal link to `<PHASE N TASK>`
61
- * Risk level (Low/Med/High)
62
- * Test plan (automated + manual)
63
- * Rollback plan
64
- * Context update diff (what changed in `/context` files)
65
-
66
- ---
67
-
68
- ## 3) Operating Modes
69
-
70
- ### A) Non-Scripted (Live Collaboration)
71
-
72
- 1. Create branch: `git checkout -b feature/<FEATURE>`
73
- 2. Connect agent (Claude or GPT-5) to repo URL.
74
- 3. Attach context: `/context/development.md`, `/context/agents.md`, relevant `/context/directory_notes/*`.
75
- 4. **Prompt:**
76
-
77
- ```
78
- PHASE 1 GOAL: <PHASE 1 GOAL>
79
- Constraints: preserve public APIs, add tests first, no destructive ops.
80
- Output: stepwise plan + minimal diffs per step.
81
- ```
82
-
83
- ### B) Scripted (One-Pass Implementation)
84
-
85
- 1. Create branch: `git checkout -b feature/<FEATURE>`
86
- 2. Attach **only** relevant context files.
87
- 3. **Prompt:**
88
-
89
- ```
90
- Create a comprehensive script/commit plan to accomplish <PHASE 1 GOAL> in one pass.
91
- Requirements:
92
- - Zero breakage; create backups where needed.
93
- - Generate/modify tests first to capture intended behavior.
94
- - Respect repo conventions, linting, and formatting.
95
- - Produce: (a) ordered commit plan, (b) code patches, (c) updated docs, (d) updated context (see §6).
96
- ```
97
-
98
- ---
99
-
100
- ## 4) Canonical Prompts
101
-
102
- ### 4.1 Deep Research (Kickoff)
103
-
104
- ```
105
- You are a staff-level engineer embedded in this codebase.
106
- Objective: Produce a comprehensive plan to improve modularity, maintainability, and achieve {{ cookiecutter.primary_goal }}.
107
- Deliverables:
108
- - Architecture review (current vs. target), explicit trade-offs.
109
- - Refactoring map (by module), dependency inversion opportunities, interface boundaries.
110
- - Test posture upgrade plan (unit/integration/contract), coverage deltas.
111
- - Risks, complexity hotspots, and rollback strategies.
112
- - 3-phase roadmap with measurable outcomes.
113
- Constraints:
114
- - Respect exclusions listed in agents.md.
115
- - Assume assets exist where excluded.
116
- - Prefer small, reversible changes; maximize seam creation for safe refactors.
117
- ```
118
-
119
- ### 4.2 Roadmap → Files
120
-
121
- ```
122
- Convert the roadmap into:
123
- - /context/development.md (engineering tasks, test plans, risks)
124
- - /context/agents.md (this file; update Operating Modes, Prompts if needed)
125
- Ensure clear Phase 1/2/3 breakdown with milestone checklists and acceptance criteria.
126
- ```
127
-
128
- ### 4.3 Implementation Guardrails (per task)
129
-
130
- ```
131
- For TASK: <task-name>
132
- - Propose minimal diff solution.
133
- - Add/adjust tests first to lock behavior.
134
- - Provide code patches and commands to run tests/lints.
135
- - Call out risks + rollback.
136
- - Update context loop (Overall/Last/Next).
137
- ```
138
-
139
- ---
140
-
141
- ## 5) Testing & Quality Gates
142
-
143
- * **Unit tests:** focus on pure logic and interfaces.
144
- * **Integration tests:** external boundaries (DB, queues, HTTP) via testcontainers/mocks.
145
- * **Contract tests:** for service clients with provider/consumer pacts if applicable.
146
- * **Coverage targets:** raise or maintain ≥ <TARGET>% lines/branches where practical.
147
- * **CI gates:** lint, type-check, build, test, basic security scan (SAST/dep audit).
148
-
149
- ---
150
-
151
- ## 6) Context Loop (Mandatory)
152
-
153
- Agents **must** persist this block at the end of every session in `/context/development.md` (and in any relevant directory note):
154
-
155
- ```
156
- ## Context Sync (AUTO-UPDATED)
157
- Overall goal is: {{ cookiecutter.primary_goal }}
158
- Last action was: <what changed and why> (commit SHA if available)
159
- Next action will be: <smallest valuable step with owner>
160
- Blockers/Risks: <if any>
161
- ```
162
-
163
- ---
164
-
165
- ## 7) Failure Modes & Rollback
166
-
167
- * **If tests fail:** revert last commit or apply backup. Fix tests first, then code.
168
- * **If unintended API change:** restore interface, add regression test.
169
- * **If scope creep:** park in `Phase N Backlog` with rationale.
170
-
171
- ---
172
-
173
- ## 8) Example Exclusion Prompt
174
-
175
- > *Drop into your agent prompt when large dirs are omitted.*
176
-
177
- “Relevant image/media assets exist under `/assets/images` but are intentionally excluded from your context to conserve tokens. **Do not** propose changes that relocate, inline, or re-encode assets. Assume paths referenced in code are valid. Focus your analysis on `/src`, `/services`, and `/tests`. If a change seems to require asset inspection, propose an interface-level abstraction instead.”
178
-
179
- ---
180
-
181
- ## 9) Definitions
182
-
183
- * **Seam:** a point in code where behavior can be changed without editing the code (e.g., via interface, DI, adapter).
184
- * **Backwards compatibility window:** period where both old and new APIs coexist with deprecation notices.
185
-
186
- ---
187
-
188
- ## 10) Tools & Commands (fill per repo)
189
-
190
- * **Install:** `<cmd>`
191
- * **Format/Lint:** `<cmd>`
192
- * **Test (unit):** `<cmd>`
193
- * **Test (integration):** `<cmd>`
194
- * **Type check:** `<cmd>`
195
- * **Local CI bundle:** `<cmd>`
196
-
@@ -1 +0,0 @@
1
- # Development Log\n\n**Phase:** (set by first feature)\n**Primary Goal:** (set by first feature)\n\n## Context Sync (AUTO-UPDATED)\n\n- **Overall goal is:** (set by feature)\n- **Last action was:** (set by feature)\n- **Next action will be:** (set by feature)\n- **Blockers:** (set by feature)\n
@@ -1,29 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: bpsai-pair
3
- Version: 0.2.0
4
- Summary: CLI for AI pair-coding workflow
5
- Author: BPS AI Software
6
- Requires-Python: >=3.9
7
- Description-Content-Type: text/markdown
8
- Requires-Dist: typer>=0.12
9
- Requires-Dist: rich>=13.7
10
- Requires-Dist: pyyaml>=6.0
11
-
12
-
13
- # bpsai-pair CLI
14
-
15
- ## Quick start (local, un-packaged)
16
- ```
17
- python -m tools.cli.bpsai_pair --help
18
- python -m tools.cli.bpsai_pair init tools/cookiecutter-paircoder
19
- python -m tools.cli.bpsai_pair feature auth-di --primary "Decouple auth via DI" --phase "Refactor auth + tests"
20
- python -m tools.cli.bpsai_pair pack --extra README.md
21
- python -m tools.cli.bpsai_pair context-sync --last "initialized scaffolding" --nxt "set up CI secrets" --blockers "none"
22
- ```
23
-
24
- ## Install as a CLI
25
- ```
26
- cd tools/cli
27
- pip install -e .
28
- # now available as: bpsai-pair --help
29
- ```
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes