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,14 +1,14 @@
|
||||
#!/bin/bash
|
||||
# Integration script for issue-facade capability
|
||||
# Integration script for issue-core capability
|
||||
# This script helps the main project discover and integrate the capability
|
||||
|
||||
set -e
|
||||
|
||||
CAPABILITY_NAME="issue-facade"
|
||||
CAPABILITY_NAME="issue-core"
|
||||
CAPABILITY_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$CAPABILITY_DIR/../.." && pwd)}"
|
||||
|
||||
echo "🔧 Issue Facade Capability Integration"
|
||||
echo "🔧 Issue Core Capability Integration"
|
||||
echo " Capability: $CAPABILITY_DIR"
|
||||
echo " Project: $PROJECT_ROOT"
|
||||
echo ""
|
||||
@@ -90,7 +90,7 @@ case $choice in
|
||||
echo "📝 Adding to Claude Code context..."
|
||||
mkdir -p "$PROJECT_ROOT/.claude/capabilities"
|
||||
cp "$CAPABILITY_DIR/.capability/agent-context.md" \
|
||||
"$PROJECT_ROOT/.claude/capabilities/issue-facade.md"
|
||||
"$PROJECT_ROOT/.claude/capabilities/issue-core.md"
|
||||
|
||||
# Create or update context file
|
||||
CONTEXT_FILE="$PROJECT_ROOT/.claude/context/capabilities.md"
|
||||
@@ -102,10 +102,10 @@ case $choice in
|
||||
|
||||
This project uses specialized capabilities. Always check for existing capabilities 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`
|
||||
**Priority:** CRITICAL (always use for issue operations)
|
||||
|
||||
**MUST USE FOR:**
|
||||
@@ -120,13 +120,13 @@ This project uses specialized capabilities. Always check for existing capabiliti
|
||||
|
||||
**Quick Start:**
|
||||
```python
|
||||
from issue_tracker.backends.gitea import GiteaBackend
|
||||
from issue_core.backends.gitea import GiteaBackend
|
||||
backend = GiteaBackend()
|
||||
backend.connect(config)
|
||||
issues = backend.list_issues()
|
||||
```
|
||||
|
||||
**Full Documentation:** See `.claude/capabilities/issue-facade.md`
|
||||
**Full Documentation:** See `.claude/capabilities/issue-core.md`
|
||||
EOF
|
||||
echo "✓ Created $CONTEXT_FILE"
|
||||
else
|
||||
@@ -138,7 +138,7 @@ EOF
|
||||
echo "✓ Added to Claude Code context"
|
||||
echo ""
|
||||
echo "Files created:"
|
||||
echo " - $PROJECT_ROOT/.claude/capabilities/issue-facade.md"
|
||||
echo " - $PROJECT_ROOT/.claude/capabilities/issue-core.md"
|
||||
echo " - $CONTEXT_FILE"
|
||||
;;
|
||||
|
||||
@@ -148,15 +148,15 @@ EOF
|
||||
mkdir -p "$PROJECT_ROOT/.claude/commands"
|
||||
|
||||
cat > "$PROJECT_ROOT/.claude/commands/use-issues.md" << 'EOF'
|
||||
You are working with issue tracking. Use the **issue-facade capability**:
|
||||
You are working with issue tracking. Use the **issue-core capability**:
|
||||
|
||||
## Available API
|
||||
|
||||
**Python (Recommended):**
|
||||
```python
|
||||
from issue_tracker.backends.gitea import GiteaBackend
|
||||
from issue_tracker.core.models import Issue, Label, IssueState
|
||||
from issue_tracker.core.interfaces import IssueFilter
|
||||
from issue_core.backends.gitea import GiteaBackend
|
||||
from issue_core.core.models import Issue, Label, IssueState
|
||||
from issue_core.core.interfaces import IssueFilter
|
||||
|
||||
backend = GiteaBackend()
|
||||
backend.connect(config)
|
||||
@@ -193,7 +193,7 @@ issue close 42 --comment="Fixed"
|
||||
|
||||
## Full Documentation
|
||||
|
||||
See `capabilities/issue-facade/AGENT_INTEGRATION.md` for:
|
||||
See `capabilities/issue-core/AGENT_INTEGRATION.md` for:
|
||||
- Complete API reference
|
||||
- Coordination patterns
|
||||
- Error handling
|
||||
@@ -206,7 +206,7 @@ EOF
|
||||
echo "Usage in Claude Code:"
|
||||
echo " /use-issues"
|
||||
echo ""
|
||||
echo "This will inject issue-facade context into the conversation."
|
||||
echo "This will inject issue-core context into the conversation."
|
||||
;;
|
||||
|
||||
5)
|
||||
@@ -250,7 +250,7 @@ EOF
|
||||
mkdir -p "$PROJECT_ROOT/.claude/context"
|
||||
|
||||
cp "$CAPABILITY_DIR/.capability/agent-context.md" \
|
||||
"$PROJECT_ROOT/.claude/capabilities/issue-facade.md"
|
||||
"$PROJECT_ROOT/.claude/capabilities/issue-core.md"
|
||||
|
||||
# Create context file if not exists
|
||||
CONTEXT_FILE="$PROJECT_ROOT/.claude/context/capabilities.md"
|
||||
@@ -258,21 +258,21 @@ EOF
|
||||
cat > "$CONTEXT_FILE" << 'EOF'
|
||||
# Available Capabilities
|
||||
|
||||
## Issue Tracking: issue-facade
|
||||
## Issue Tracking: issue-core
|
||||
|
||||
**CRITICAL:** Always use this for issue operations. Never bypass with direct API calls.
|
||||
|
||||
**Docs:** `.claude/capabilities/issue-facade.md`
|
||||
**Docs:** `.claude/capabilities/issue-core.md`
|
||||
**Usage:** `/use-issues`
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Create slash command
|
||||
cat > "$PROJECT_ROOT/.claude/commands/use-issues.md" << 'EOF'
|
||||
Use the issue-facade capability for all issue tracking operations.
|
||||
Use the issue-core capability for all issue tracking operations.
|
||||
|
||||
**Quick reference:** See `.claude/capabilities/issue-facade.md`
|
||||
**Examples:** See `capabilities/issue-facade/examples/agents/`
|
||||
**Quick reference:** See `.claude/capabilities/issue-core.md`
|
||||
**Examples:** See `capabilities/issue-core/examples/agents/`
|
||||
|
||||
**DO NOT use direct API calls or platform CLIs!**
|
||||
EOF
|
||||
@@ -285,7 +285,7 @@ EOF
|
||||
echo ""
|
||||
issue --version && echo "✓ CLI works" || echo "❌ CLI not working"
|
||||
issue backend list | grep -q "default" && echo "✓ Backend configured" || echo "⚠️ Backend not configured"
|
||||
[ -f "$PROJECT_ROOT/.claude/capabilities/issue-facade.md" ] && echo "✓ Claude context exists" || echo "❌ Claude context missing"
|
||||
[ -f "$PROJECT_ROOT/.claude/capabilities/issue-core.md" ] && echo "✓ Claude context exists" || echo "❌ Claude context missing"
|
||||
[ -f "$PROJECT_ROOT/.claude/commands/use-issues.md" ] && echo "✓ Slash command exists" || echo "❌ Slash command missing"
|
||||
|
||||
echo ""
|
||||
@@ -294,7 +294,7 @@ EOF
|
||||
echo "Next steps:"
|
||||
echo " 1. Test: issue list --limit=5"
|
||||
echo " 2. In Claude Code: /use-issues"
|
||||
echo " 3. See examples: capabilities/issue-facade/examples/agents/"
|
||||
echo " 3. See examples: capabilities/issue-core/examples/agents/"
|
||||
;;
|
||||
|
||||
0)
|
||||
|
||||
Reference in New Issue
Block a user