generated from coulomb/repo-seed
feat: rename to issue-core and add task ingestion endpoint
Renames the package, distribution, CLI alias, Makefile targets, and working directory from issue-facade to issue-core, signalling its role as the authoritative task lifecycle manager for the Coulomb org (peer to activity-core, rules-core, project-core). Adds POST /issues/ ingestion endpoint for activity-core's IssueSink, under a new optional [api] extra. The endpoint is served by `issue serve`, authenticates via the ISSUE_CORE_API_KEY env var (Bearer or X-API-Key header), and routes the TaskSpec payload to the configured default backend with full traceability metadata embedded in sync_metadata. - T01: Python package issue_tracker -> issue_core, dir rename - T02: registered in state hub under custodian domain - T03: INTENT.md (what it is, what it isn't, how it fits) - T04: SCOPE.md (in/out-of-scope, integration boundaries) - T05: POST /issues/ via FastAPI + Uvicorn, 9 unit tests - T06: docs/nats-task-ingestion.md design stub Closes ISSC-WP-0001. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Issue Facade Integration Checklist
|
||||
# Issue Core Integration Checklist
|
||||
|
||||
**For project maintainers integrating this capability into their codebase.**
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
- [ ] **Install capability:**
|
||||
```bash
|
||||
pip install -e capabilities/issue-facade/
|
||||
pip install -e capabilities/issue-core/
|
||||
```
|
||||
|
||||
- [ ] **Verify installation:**
|
||||
@@ -42,8 +42,8 @@
|
||||
- [ ] **Copy agent context to project:**
|
||||
```bash
|
||||
mkdir -p .claude/capabilities/
|
||||
cp capabilities/issue-facade/.capability/agent-context.md \
|
||||
.claude/capabilities/issue-facade.md
|
||||
cp capabilities/issue-core/.capability/agent-context.md \
|
||||
.claude/capabilities/issue-core.md
|
||||
```
|
||||
|
||||
- [ ] **Add to Claude Code context:**
|
||||
@@ -53,17 +53,17 @@
|
||||
|
||||
This project uses specialized capabilities. Always check these before implementing similar functionality.
|
||||
|
||||
## Issue Tracking: issue-facade
|
||||
## Issue Tracking: issue-core
|
||||
|
||||
**Location:** `capabilities/issue-facade/`
|
||||
**Documentation:** `.claude/capabilities/issue-facade.md`
|
||||
**Location:** `capabilities/issue-core/`
|
||||
**Documentation:** `.claude/capabilities/issue-core.md`
|
||||
|
||||
**CRITICAL:** Always use this capability for issue operations. Never use:
|
||||
- Direct API calls (requests to /api/v1/repos/...)
|
||||
- Platform CLIs (gh, glab)
|
||||
- Platform libraries (PyGithub, python-gitlab)
|
||||
|
||||
See `.claude/capabilities/issue-facade.md` for usage patterns.
|
||||
See `.claude/capabilities/issue-core.md` for usage patterns.
|
||||
```
|
||||
|
||||
### Option 2: Slash Command
|
||||
@@ -71,11 +71,11 @@
|
||||
- [ ] **Create slash command:**
|
||||
Create `.claude/commands/use-issues.md`:
|
||||
```markdown
|
||||
You are working with issue tracking. Use the issue-facade capability:
|
||||
You are working with issue tracking. Use the issue-core capability:
|
||||
|
||||
**Python API:**
|
||||
```python
|
||||
from issue_tracker.backends.gitea import GiteaBackend
|
||||
from issue_core.backends.gitea import GiteaBackend
|
||||
backend = GiteaBackend()
|
||||
backend.connect(config)
|
||||
```
|
||||
@@ -86,7 +86,7 @@
|
||||
issue create "Title" --label=bug
|
||||
```
|
||||
|
||||
**Full docs:** See `capabilities/issue-facade/AGENT_INTEGRATION.md`
|
||||
**Full docs:** See `capabilities/issue-core/AGENT_INTEGRATION.md`
|
||||
|
||||
**DO NOT use direct API calls or platform CLIs!**
|
||||
```
|
||||
@@ -106,7 +106,7 @@
|
||||
## Agent Configuration
|
||||
|
||||
- [ ] **Set agent identity:**
|
||||
Add to `.issue-facade/config.json`:
|
||||
Add to `.issue-core/config.json`:
|
||||
```json
|
||||
{
|
||||
"agent": {
|
||||
@@ -126,8 +126,8 @@
|
||||
|
||||
- [ ] **Test basic operations:**
|
||||
```python
|
||||
from issue_tracker.backends.gitea import GiteaBackend
|
||||
from issue_tracker.core.interfaces import IssueFilter
|
||||
from issue_core.backends.gitea import GiteaBackend
|
||||
from issue_core.core.interfaces import IssueFilter
|
||||
|
||||
backend = GiteaBackend()
|
||||
backend.connect({'base_url': '...', 'token': '...', 'owner': '...', 'repo': '...'})
|
||||
@@ -153,26 +153,26 @@
|
||||
```markdown
|
||||
## Issue Tracking
|
||||
|
||||
This project uses the issue-facade capability for unified issue tracking.
|
||||
This project uses the issue-core capability for unified issue tracking.
|
||||
|
||||
**Setup:**
|
||||
```bash
|
||||
pip install -e capabilities/issue-facade/
|
||||
pip install -e capabilities/issue-core/
|
||||
export GITEA_API_TOKEN="your-token"
|
||||
issue backend add myproject gitea
|
||||
```
|
||||
|
||||
**Usage:** See `capabilities/issue-facade/AGENT_INTEGRATION.md`
|
||||
**Usage:** See `capabilities/issue-core/AGENT_INTEGRATION.md`
|
||||
```
|
||||
|
||||
- [ ] **Add to CONTRIBUTING.md:**
|
||||
```markdown
|
||||
### Issue Tracking
|
||||
|
||||
Always use the `issue` command or Python API from `issue_tracker` package.
|
||||
Always use the `issue` command or Python API from `issue_core` package.
|
||||
Never make direct API calls to Gitea/GitHub/GitLab.
|
||||
|
||||
Examples: `capabilities/issue-facade/examples/agents/`
|
||||
Examples: `capabilities/issue-core/examples/agents/`
|
||||
```
|
||||
|
||||
## Security Review
|
||||
@@ -180,9 +180,9 @@
|
||||
- [ ] **Verify tokens are not in code:** `git grep GITEA_TOKEN` (should be empty)
|
||||
- [ ] **Check .gitignore includes:**
|
||||
```
|
||||
.issue-facade/config.json
|
||||
.issue-facade/issues.db
|
||||
.issue-facade/credentials.json
|
||||
.issue-core/config.json
|
||||
.issue-core/issues.db
|
||||
.issue-core/credentials.json
|
||||
```
|
||||
|
||||
- [ ] **Audit token permissions:** Read-only for bots, write for implementation
|
||||
@@ -192,7 +192,7 @@
|
||||
|
||||
- [ ] **Run capability tests:**
|
||||
```bash
|
||||
cd capabilities/issue-facade/
|
||||
cd capabilities/issue-core/
|
||||
make test
|
||||
```
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
|
||||
- [ ] **Schedule regular updates:**
|
||||
```bash
|
||||
cd capabilities/issue-facade/
|
||||
cd capabilities/issue-core/
|
||||
git pull origin main
|
||||
pip install -e . --upgrade
|
||||
```
|
||||
@@ -232,7 +232,7 @@ If capability causes issues:
|
||||
|
||||
- [ ] **Keep backup config:**
|
||||
```bash
|
||||
cp ~/.config/issue-facade/backends.json ~/.config/issue-facade/backends.json.backup
|
||||
cp ~/.config/issue-core/backends.json ~/.config/issue-core/backends.json.backup
|
||||
```
|
||||
|
||||
- [ ] **Document rollback steps in project wiki/docs**
|
||||
|
||||
Reference in New Issue
Block a user