bpsai-pair 0.2.0__tar.gz → 0.2.2__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.
- bpsai_pair-0.2.2/PKG-INFO +89 -0
- bpsai_pair-0.2.2/README.md +78 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/__init__.py +1 -1
- bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.agentpackignore +19 -0
- bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/project_tree.yml +54 -0
- bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/AGENTS.md +29 -0
- bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CLAUDE.md +32 -0
- bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md +15 -0
- bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md.bak → bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md +1 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/scripts/README.md +1 -1
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/ops.py +70 -71
- bpsai_pair-0.2.2/bpsai_pair.egg-info/PKG-INFO +89 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/SOURCES.txt +2 -2
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/pyproject.toml +2 -2
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_ops.py +27 -0
- bpsai_pair-0.2.0/PKG-INFO +0 -29
- bpsai_pair-0.2.0/README.md +0 -18
- bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.agentpackignore +0 -1
- bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/project_tree.yml +0 -33
- bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md +0 -6
- bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/agents.md.bak +0 -196
- bpsai_pair-0.2.0/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/development.md +0 -1
- bpsai_pair-0.2.0/bpsai_pair.egg-info/PKG-INFO +0 -29
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/MANIFEST.in +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/__main__.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/adapters.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/cli.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/config.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/cookiecutter.json +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.editorconfig +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.github/workflows/ci.yml +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitignore +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.gitleaks.toml +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/.pre-commit-config.yaml +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CODEOWNERS +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CONTRIBUTING.md +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/SECURITY.md +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/directory_notes/.gitkeep +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/context/project_tree.md +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/deep_research.yml +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/implementation.yml +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/prompts/roadmap.yml +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/src/.gitkeep +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/templates/adr.md +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/templates/directory_note.md +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/tests/example_contract/README.md +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/tests/example_integration/README.md +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/init_bundled_cli.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/jsonio.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/pyutils.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair/utils.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/dependency_links.txt +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/entry_points.txt +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/requires.txt +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/bpsai_pair.egg-info/top_level.txt +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/setup.cfg +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_cli.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_config.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_context_sync.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_feature_branch_type.py +0 -0
- {bpsai_pair-0.2.0 → bpsai_pair-0.2.2}/tests/test_pack_preview.py +0 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: bpsai-pair
|
|
3
|
+
Version: 0.2.2
|
|
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`.
|
|
@@ -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
|
bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/AGENTS.md
ADDED
|
@@ -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.
|
bpsai_pair-0.2.2/bpsai_pair/data/cookiecutter-paircoder/{{cookiecutter.project_slug}}/CLAUDE.md
ADDED
|
@@ -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.
|