coacoa


Namecoacoa JSON
Version 0.1.0b1 PyPI version JSON
download
home_pageNone
SummaryContext-Optimised Agentic Coding Assistant
upload_time2025-07-27 22:59:43
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseApache-2.0
keywords cli developer-tools code-analysis software-quality
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!-- README header: paste ABOVE the existing content -->

<p align="center">
  <img src=".github/banner/CoaCoALogo.png" alt="CoaCoA logo" width="150">
</p>

<p align="center">
  <a href="https://pypi.org/project/coacoa/">
    <img src="https://img.shields.io/pypi/v/coacoa.svg?color=blue&logo=pypi&label=PyPI%20Version" alt="PyPI">
  </a>
  <a href="https://github.com/im-shashanks/coacoa/blob/main/LICENSE">
    <img src="https://img.shields.io/badge/license-Apache--2.0-green.svg" alt="License">
  </a>
  <a href="https://github.com/im-shashanks/CoaCoA/actions/workflows/ci.yml">
  <img
    src="https://img.shields.io/github/actions/workflow/status/im-shashanks/CoaCoA/ci.yml?branch=main&label=CI%20build"
    alt="CI build status"
  >
    </a>
  <a href="https://codecov.io/gh/im-shashanks/CoaCoA">
    <img src=".github/assets/coverage.svg" alt="coverage">
  </a>
</p>

# CoaCoA (*v0.1.0b1*) — Context aware Coding Assitant
**Context-Optimised Agentic Coding Assistant**  
- *“Drop it in, branch out, ship confidently.”*

---

## 📌 TL;DR  

1. `pip install --pre coacoa`              *(you can also directly copy the `coacoa/` folder, after git clone `<repo>` if you prefer.)*  
*(--pre flag is required because this is a beta version)*  

> ⚠️ **Note:** CoaCoA is currently in public beta (`0.1.0b1`).  
> To install, use the `--pre` flag with pip as shown above.  
> The stable release (`0.1.0`) will follow soon.  

2. `coacoa init`                       *(or manual copy) — scaffolds `coacoa/`, `CLAUDE.md`, `.clinerules`*  
3. `git add . && git commit -m "init coa"`  
4. In your IDE (Claude Code / Cline):  

   ```text
   /analyze-codebase        # brown-field   │  or  │  /analyst init      # green-field
   /pm new-prd
   /ux-designer make-ui
   /po refine-epics
   /architect finalize-arch
   /scrum-master create
   /orchestrator run        # Dev → QA loop
   ```
5. Review staged branch feature/s_001_01, commit & push.
6. Rinse, repeat → production-ready PRs with ≥ 90 % test coverage and zero broken builds.

## 🏃‍♂️  CLI quick-start

> **Virtual-env:** Create virtualenv `.venv` at the project root `python3 -m venv .venv`  
> All build, test, and lint commands run inside that venv, keeping global Python untouched.

```bash
# run with explicit sub-command
coacoa init --claude-code            # scaffold + create CLAUDE.md

# or simply run without a sub-command (same as `init`)
coacoa --claude-code
```

### Getting help
| Command | Shows… |  
| - | - |  
| coacoa --help | Global options and the list of sub-commands (init, version, …) |  
| coacoa init --help | The per-command flags:  --claude-code, --cline |  

-Tip – Running coacoa with no arguments is equivalent to coacoa init, so you can type the shorter form once you’re familiar with the flags.

### 🔧 Configuration  
• Default settings live in **.coacoa/coacoa.yaml** (ignored by Git).  
• Create **coacoa.yaml** at project root to override any key; values deep-merge on top of the defaults.

## ✨ Why CoaCoA?
| Area | CoaCoA v0.1 |  
| - | - |  
| Config schema | 28-key namespaced YAML |  
| Code-intel | map + deps + complexity + hotspots + coverage + cycles + build_info |  
| Quality gates | 🎯 5 checklists (Anti-Hallucination, Link, QA, Arch, Build) |  
| Workflow | 12 agents (UX, PO, Architect, Code-Explorer, Orchestrator) |  
| Branching | auto feature/<story> branch (staged, not committed) |  
| SOLID policy | Pragmatic SRP/OCP mandatory, rest advisory via ADR |  

## 🗂 Folder & file map
coacoa/  
├─ coacoa.yaml               ← config (paths, limits, workflows…)  
├─ agents/                   ← markdown specs (analyst, pm, … orchestrator)  
├─ tasks/                    ← step-by-step recipes (analyze_codebase.md …)  
├─ templates/                ← PRD, UI/UX, architecture, story, ADR…  
├─ quality/                  ← checklists (anti_hallucination, build_integrity…)  
├─ data/                     ← tech_preferences.md, solid_policy.md, style_guides/  
├─ workflows/                ← default_greenfield.yml, default_brownfield.yml  
└─ context/                  ← generated intelligence artefacts  

**Git**
Add coacoa/* to .gitignore.  
Orchestrator stages changes; you commit/push.  

### ⚙ coacoa.yaml — key highlights
```yaml
paths:                             # where artefacts live
    analysis: context/analysis.md
    module_map: context/intelligence/module_map.json
    build_info: context/intelligence/build_info.json
limits:                            # token / LOC budgets
    max_snippet_loc: 120
    max_tokens_context: 12000
workflows:
    greenfield: workflows/default_greenfield.yml
    brownfield: workflows/default_brownfield.yml
quality:
    anti_hallucination: quality/anti_hallucination.md
docs:
    adr_dir: docs/adr/              # Architecture Decision Records
    file_prefixes:
story: "s_"                     # s_001_01.md
epic:  "e_"                     # e_001.md
```

(Full schema lives in the file itself.)

## 💬 Command palette (Claude Code / Cline)

| Slash command | Agent invoked | When you use it |  
| - | - | - |  
| /analyze-codebase | Code-Explorer | First step in brown-field repo |  
| /analyst init | Analyst | First step in green-field idea |  
| /pm new-prd | PM | Generate / refresh PRD |  
| /ux-designer make-ui | UX-Designer | Add UI flows & a11y notes |  
| /po refine-epics | Product Owner | Rank epics, create backlog |  
| /architect finalize-arch | Architect | Produce architecture doc & ADRs |  
| /scrum-master create | Scrum-Master | Split epics into stories |  
| /dev implement <story> | Developer | Work a single story |  
| /qa review | QA | Validate Dev’s story |  
| /orchestrator run | Orchestrator | Drive Dev → QA for next story |  

*(Run /orchestrator log anytime to see pipeline status.)*  

## 🚀 Green-field walk-through (idea → app)

```text
/analyst init    "Real-time expense tracker for remote teams"
/analyst         # responds with clarifying questions
→  You answer those questions until ✔ Open-Questions list is empty

/pm new-prd
    ↳ prd.md + initial epics e_001.md … e_n.md
/ux-designer make-ui
    ↳ ui_ux.md with wireframes + a11y notes
/po refine-epics
    ↳ backlog.md (ranked)
/architect finalize-arch
    ↳ architecture.md + docs/adr/2025-07-26-db-choice.md
/scrum-master create
    ↳ stories/s_001_01.md …
/orchestrator run
    ⇒ feature/s_001_01 branch staged
    ⇒ Dev builds, tests (≥ 90 % coverage), updates story footer
    ⇒ QA validates, appends report
Human: git commit -m "story s_001_01 – user onboarding" && git push
```  

#### Notes
•	"/analyst init `"<one-sentence product idea>"`  *– You can supply a single-line vision statement inline, or just run /analyst init and paste whatever raw notes you have.*  
•	The Analyst will always ask follow-up questions until its Open-Questions list is empty; that guarantees the PM starts with a complete domain doc.  
•	Everything after the Analyst step remains identical to the original workflow.  

## 🔧 Brown-field quick-start

```bash
git clone <legacy-repo>
cp -r coacoa/ CLAUDE.md .clinerules .
echo "coacoa/" >> .gitignore
/analyze-codebase         # CIS artefacts + build_info.json
/pm new-prd               # aligns PRD with real modules
/po refine-epics
/architect finalize-arch  # breaks cycles, writes ADR
/scrum-master create
/orchestrator run
```

*Branch rule  
Each story = its own branch feature/s_<id> staged only.  Humans merge to  
trunk after review → zero surprise refactors.*  

### ✅ Quality gates snapshot
•	Build-Integrity – build, test, lint run before QA (B-1…B-5).  
•	Coverage – ≥ 90 % lines for touched files; delta tracked in story footer.  
•	Anti-Hallucination – 12-point symbol & path sanity.  
•	Arch-Integrity – no dependency cycles, ADRs linked.  
•	SOLID (pragmatic) – SRP & OCP hard-enforced; others advisory via ADR.  

### 🧑‍🎓 Extending CoaCoA
•	Add a new agent: drop agents/<name>.md, reference it in a workflow YAML.  
•	Add a new quality gate: create checklist in quality/, list it under agent’s checks:.  
•	Swap LLM: change llm.default in coacoa.yaml.  

### 🤔 FAQ

Q: Why no auto-commit?  
A: Corporate compliance often requires human sign-off; CoaCoA stages but never commits.  

Q: Will stories bloat token context over time?  
A: Micro-context is capped to max_snippet_loc (120 LOC); old modules are referenced by path, not pasted.  

Q: Can I lower coverage?  
A: Yes—set quality.target_coverage in a future release, but 90 % is the sane default for v0.1.  

⸻

### ✍ Contributing
1.	Fork, branch fix/<topic>.  
2.	Run /orchestrator run on sample examples/petclinic_py.  
3.	Ensure all checklists pass.  
4.	PR with linking ADR if changing architecture.  

⸻

**© Licence**

*Apache-2.0 (see LICENSE).*

*Happy shipping! :-)*

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "coacoa",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "cli, developer-tools, code-analysis, software-quality",
    "author": null,
    "author_email": "Shashank S <procodere@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/9b/10/8d4f9cd0adc2d05f350cffcf8a8a00f91847f3db2d3131248bebb95d6d49/coacoa-0.1.0b1.tar.gz",
    "platform": null,
    "description": "<!-- README header: paste ABOVE the existing content -->\n\n<p align=\"center\">\n  <img src=\".github/banner/CoaCoALogo.png\" alt=\"CoaCoA logo\" width=\"150\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://pypi.org/project/coacoa/\">\n    <img src=\"https://img.shields.io/pypi/v/coacoa.svg?color=blue&logo=pypi&label=PyPI%20Version\" alt=\"PyPI\">\n  </a>\n  <a href=\"https://github.com/im-shashanks/coacoa/blob/main/LICENSE\">\n    <img src=\"https://img.shields.io/badge/license-Apache--2.0-green.svg\" alt=\"License\">\n  </a>\n  <a href=\"https://github.com/im-shashanks/CoaCoA/actions/workflows/ci.yml\">\n  <img\n    src=\"https://img.shields.io/github/actions/workflow/status/im-shashanks/CoaCoA/ci.yml?branch=main&label=CI%20build\"\n    alt=\"CI build status\"\n  >\n    </a>\n  <a href=\"https://codecov.io/gh/im-shashanks/CoaCoA\">\n    <img src=\".github/assets/coverage.svg\" alt=\"coverage\">\n  </a>\n</p>\n\n# CoaCoA (*v0.1.0b1*)\u2003\u2014\u2003Context aware Coding Assitant\n**Context-Optimised Agentic Coding Assistant**  \n- *\u201cDrop it in, branch out, ship confidently.\u201d*\n\n---\n\n## \ud83d\udccc TL;DR  \n\n1. `pip install --pre coacoa`              *(you can also directly copy the `coacoa/` folder, after git clone `<repo>` if you prefer.)*  \n*(--pre flag is required because this is a beta version)*  \n\n> \u26a0\ufe0f **Note:** CoaCoA is currently in public beta (`0.1.0b1`).  \n> To install, use the `--pre` flag with pip as shown above.  \n> The stable release (`0.1.0`) will follow soon.  \n\n2. `coacoa init`                       *(or manual copy) \u2014 scaffolds `coacoa/`, `CLAUDE.md`, `.clinerules`*  \n3. `git add . && git commit -m \"init coa\"`  \n4. In your IDE (Claude Code / Cline):  \n\n   ```text\n   /analyze-codebase        # brown-field   \u2502  or  \u2502  /analyst init      # green-field\n   /pm new-prd\n   /ux-designer make-ui\n   /po refine-epics\n   /architect finalize-arch\n   /scrum-master create\n   /orchestrator run        # Dev \u2192 QA loop\n   ```\n5. Review staged branch feature/s_001_01, commit & push.\n6. Rinse, repeat \u2192 production-ready PRs with \u2265 90 % test coverage and zero broken builds.\n\n## \ud83c\udfc3\u200d\u2642\ufe0f  CLI quick-start\n\n> **Virtual-env:** Create virtualenv `.venv` at the project root `python3 -m venv .venv`  \n> All build, test, and lint commands run inside that venv, keeping global Python untouched.\n\n```bash\n# run with explicit sub-command\ncoacoa init --claude-code            # scaffold + create CLAUDE.md\n\n# or simply run without a sub-command (same as `init`)\ncoacoa --claude-code\n```\n\n### Getting help\n| Command | Shows\u2026 |  \n| - | - |  \n| coacoa --help | Global options and the list of sub-commands (init, version, \u2026) |  \n| coacoa init --help | The per-command flags:  --claude-code, --cline |  \n\n-Tip \u2013 Running coacoa with no arguments is equivalent to coacoa init, so you can type the shorter form once you\u2019re familiar with the flags.\n\n### \ud83d\udd27 Configuration  \n\u2022 Default settings live in **.coacoa/coacoa.yaml** (ignored by Git).  \n\u2022 Create **coacoa.yaml** at project root to override any key; values deep-merge on top of the defaults.\n\n## \u2728 Why CoaCoA?\n| Area | CoaCoA v0.1 |  \n| - | - |  \n| Config schema | 28-key namespaced YAML |  \n| Code-intel | map + deps + complexity + hotspots + coverage + cycles + build_info |  \n| Quality gates | \ud83c\udfaf 5 checklists (Anti-Hallucination, Link, QA, Arch, Build) |  \n| Workflow | 12 agents (UX, PO, Architect, Code-Explorer, Orchestrator) |  \n| Branching | auto feature/<story> branch (staged, not committed) |  \n| SOLID policy | Pragmatic SRP/OCP mandatory, rest advisory via ADR |  \n\n## \ud83d\uddc2 Folder & file map\ncoacoa/  \n\u251c\u2500 coacoa.yaml               \u2190 config (paths, limits, workflows\u2026)  \n\u251c\u2500 agents/                   \u2190 markdown specs (analyst, pm, \u2026 orchestrator)  \n\u251c\u2500 tasks/                    \u2190 step-by-step recipes (analyze_codebase.md \u2026)  \n\u251c\u2500 templates/                \u2190 PRD, UI/UX, architecture, story, ADR\u2026  \n\u251c\u2500 quality/                  \u2190 checklists (anti_hallucination, build_integrity\u2026)  \n\u251c\u2500 data/                     \u2190 tech_preferences.md, solid_policy.md, style_guides/  \n\u251c\u2500 workflows/                \u2190 default_greenfield.yml, default_brownfield.yml  \n\u2514\u2500 context/                  \u2190 generated intelligence artefacts  \n\n**Git**\nAdd coacoa/* to .gitignore.  \nOrchestrator stages changes; you commit/push.  \n\n### \u2699 coacoa.yaml \u2014 key highlights\n```yaml\npaths:                             # where artefacts live\n    analysis: context/analysis.md\n    module_map: context/intelligence/module_map.json\n    build_info: context/intelligence/build_info.json\nlimits:                            # token / LOC budgets\n    max_snippet_loc: 120\n    max_tokens_context: 12000\nworkflows:\n    greenfield: workflows/default_greenfield.yml\n    brownfield: workflows/default_brownfield.yml\nquality:\n    anti_hallucination: quality/anti_hallucination.md\ndocs:\n    adr_dir: docs/adr/              # Architecture Decision Records\n    file_prefixes:\nstory: \"s_\"                     # s_001_01.md\nepic:  \"e_\"                     # e_001.md\n```\n\n(Full schema lives in the file itself.)\n\n## \ud83d\udcac Command palette (Claude Code / Cline)\n\n| Slash command | Agent invoked | When you use it |  \n| - | - | - |  \n| /analyze-codebase | Code-Explorer | First step in brown-field repo |  \n| /analyst init | Analyst | First step in green-field idea |  \n| /pm new-prd | PM | Generate / refresh PRD |  \n| /ux-designer make-ui | UX-Designer | Add UI flows & a11y notes |  \n| /po refine-epics | Product Owner | Rank epics, create backlog |  \n| /architect finalize-arch | Architect | Produce architecture doc & ADRs |  \n| /scrum-master create | Scrum-Master | Split epics into stories |  \n| /dev implement <story> | Developer | Work a single story |  \n| /qa review | QA | Validate Dev\u2019s story |  \n| /orchestrator run | Orchestrator | Drive Dev \u2192 QA for next story |  \n\n*(Run /orchestrator log anytime to see pipeline status.)*  \n\n## \ud83d\ude80 Green-field walk-through (idea \u2192 app)\n\n```text\n/analyst init    \"Real-time expense tracker for remote teams\"\n/analyst         # responds with clarifying questions\n\u2192  You answer those questions until \u2714 Open-Questions list is empty\n\n/pm new-prd\n    \u21b3 prd.md + initial epics e_001.md \u2026 e_n.md\n/ux-designer make-ui\n    \u21b3 ui_ux.md with wireframes + a11y notes\n/po refine-epics\n    \u21b3 backlog.md (ranked)\n/architect finalize-arch\n    \u21b3 architecture.md + docs/adr/2025-07-26-db-choice.md\n/scrum-master create\n    \u21b3 stories/s_001_01.md \u2026\n/orchestrator run\n    \u21d2 feature/s_001_01 branch staged\n    \u21d2 Dev builds, tests (\u2265 90 % coverage), updates story footer\n    \u21d2 QA validates, appends report\nHuman: git commit -m \"story s_001_01 \u2013 user onboarding\" && git push\n```  \n\n#### Notes\n\u2022\t\"/analyst init `\"<one-sentence product idea>\"`  *\u2013 You can supply a single-line vision statement inline, or just run /analyst init and paste whatever raw notes you have.*  \n\u2022\tThe Analyst will always ask follow-up questions until its Open-Questions list is empty; that guarantees the PM starts with a complete domain doc.  \n\u2022\tEverything after the Analyst step remains identical to the original workflow.  \n\n## \ud83d\udd27 Brown-field quick-start\n\n```bash\ngit clone <legacy-repo>\ncp -r coacoa/ CLAUDE.md .clinerules .\necho \"coacoa/\" >> .gitignore\n/analyze-codebase         # CIS artefacts + build_info.json\n/pm new-prd               # aligns PRD with real modules\n/po refine-epics\n/architect finalize-arch  # breaks cycles, writes ADR\n/scrum-master create\n/orchestrator run\n```\n\n*Branch rule  \nEach story = its own branch feature/s_<id> staged only.  Humans merge to  \ntrunk after review \u2192 zero surprise refactors.*  \n\n### \u2705 Quality gates snapshot\n\u2022\tBuild-Integrity \u2013 build, test, lint run before QA (B-1\u2026B-5).  \n\u2022\tCoverage \u2013 \u2265 90 % lines for touched files; delta tracked in story footer.  \n\u2022\tAnti-Hallucination \u2013 12-point symbol & path sanity.  \n\u2022\tArch-Integrity \u2013 no dependency cycles, ADRs linked.  \n\u2022\tSOLID (pragmatic) \u2013 SRP & OCP hard-enforced; others advisory via ADR.  \n\n### \ud83e\uddd1\u200d\ud83c\udf93 Extending CoaCoA\n\u2022\tAdd a new agent: drop agents/<name>.md, reference it in a workflow YAML.  \n\u2022\tAdd a new quality gate: create checklist in quality/, list it under agent\u2019s checks:.  \n\u2022\tSwap LLM: change llm.default in coacoa.yaml.  \n\n### \ud83e\udd14 FAQ\n\nQ: Why no auto-commit?  \nA: Corporate compliance often requires human sign-off; CoaCoA stages but never commits.  \n\nQ: Will stories bloat token context over time?  \nA: Micro-context is capped to max_snippet_loc (120 LOC); old modules are referenced by path, not pasted.  \n\nQ: Can I lower coverage?  \nA: Yes\u2014set quality.target_coverage in a future release, but 90 % is the sane default for v0.1.  \n\n\u2e3b\n\n### \u270d Contributing\n1.\tFork, branch fix/<topic>.  \n2.\tRun /orchestrator run on sample examples/petclinic_py.  \n3.\tEnsure all checklists pass.  \n4.\tPR with linking ADR if changing architecture.  \n\n\u2e3b\n\n**\u00a9 Licence**\n\n*Apache-2.0 (see LICENSE).*\n\n*Happy shipping! :-)*\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Context-Optimised Agentic Coding Assistant",
    "version": "0.1.0b1",
    "project_urls": null,
    "split_keywords": [
        "cli",
        " developer-tools",
        " code-analysis",
        " software-quality"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8b95ac038dc3d25c10694f44632a9b651077bf9f1137988f57f17ea30efb1aeb",
                "md5": "2e94f7469341f4ba765051e1aa1254d9",
                "sha256": "c1682d2efc46f8e8ee9e505413c19350dc3fda3783834cd11aeb4b1cd5513786"
            },
            "downloads": -1,
            "filename": "coacoa-0.1.0b1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2e94f7469341f4ba765051e1aa1254d9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 52434,
            "upload_time": "2025-07-27T22:59:42",
            "upload_time_iso_8601": "2025-07-27T22:59:42.205218Z",
            "url": "https://files.pythonhosted.org/packages/8b/95/ac038dc3d25c10694f44632a9b651077bf9f1137988f57f17ea30efb1aeb/coacoa-0.1.0b1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9b108d4f9cd0adc2d05f350cffcf8a8a00f91847f3db2d3131248bebb95d6d49",
                "md5": "5829841bfc0bae1e0fb7eb73cd8f4c4a",
                "sha256": "126c91b08bd9d964986e98b0844ff44810d271979d2de91fe4c9a4049029536b"
            },
            "downloads": -1,
            "filename": "coacoa-0.1.0b1.tar.gz",
            "has_sig": false,
            "md5_digest": "5829841bfc0bae1e0fb7eb73cd8f4c4a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 43965,
            "upload_time": "2025-07-27T22:59:43",
            "upload_time_iso_8601": "2025-07-27T22:59:43.606352Z",
            "url": "https://files.pythonhosted.org/packages/9b/10/8d4f9cd0adc2d05f350cffcf8a8a00f91847f3db2d3131248bebb95d6d49/coacoa-0.1.0b1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-27 22:59:43",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "coacoa"
}
        
Elapsed time: 1.27080s