agentshift 0.1.0__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.
- agentshift-0.1.0/.github/CODEOWNERS +25 -0
- agentshift-0.1.0/.github/ISSUE_TEMPLATE/bug_report.yml +93 -0
- agentshift-0.1.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
- agentshift-0.1.0/.github/ISSUE_TEMPLATE/feature_request.yml +54 -0
- agentshift-0.1.0/.github/ISSUE_TEMPLATE/platform_request.yml +55 -0
- agentshift-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +53 -0
- agentshift-0.1.0/.github/SETUP.md +65 -0
- agentshift-0.1.0/.github/workflows/ci.yml +85 -0
- agentshift-0.1.0/.gitignore +39 -0
- agentshift-0.1.0/AGENTS.md +68 -0
- agentshift-0.1.0/BACKLOG.md +55 -0
- agentshift-0.1.0/CODE_OF_CONDUCT.md +43 -0
- agentshift-0.1.0/CONTRIBUTING.md +136 -0
- agentshift-0.1.0/LICENSE +201 -0
- agentshift-0.1.0/PKG-INFO +138 -0
- agentshift-0.1.0/README.md +112 -0
- agentshift-0.1.0/SECURITY.md +42 -0
- agentshift-0.1.0/examples/pregnancy-companion/AGENTS.md +212 -0
- agentshift-0.1.0/examples/pregnancy-companion/BOOTSTRAP.md +55 -0
- agentshift-0.1.0/examples/pregnancy-companion/SKILL.md +88 -0
- agentshift-0.1.0/examples/pregnancy-companion/data/appointments.md +5 -0
- agentshift-0.1.0/examples/pregnancy-companion/data/questions-for-doctor.md +7 -0
- agentshift-0.1.0/examples/pregnancy-companion/data/symptoms-log.md +5 -0
- agentshift-0.1.0/examples/pregnancy-companion/data/weight-log.md +6 -0
- agentshift-0.1.0/examples/pregnancy-companion/knowledge/appointments.md +122 -0
- agentshift-0.1.0/examples/pregnancy-companion/knowledge/exercise.md +114 -0
- agentshift-0.1.0/examples/pregnancy-companion/knowledge/nutrition.md +112 -0
- agentshift-0.1.0/examples/pregnancy-companion/knowledge/warning-signs.md +80 -0
- agentshift-0.1.0/examples/pregnancy-companion/knowledge/week-by-week.md +198 -0
- agentshift-0.1.0/pyproject.toml +72 -0
- agentshift-0.1.0/specs/claude-code-format.md +397 -0
- agentshift-0.1.0/specs/ir-schema.json +438 -0
- agentshift-0.1.0/specs/ir-schema.md +370 -0
- agentshift-0.1.0/specs/openclaw-skill-format.md +483 -0
- agentshift-0.1.0/src/agentshift/__init__.py +3 -0
- agentshift-0.1.0/src/agentshift/cli.py +44 -0
- agentshift-0.1.0/src/agentshift/emitters/__init__.py +1 -0
- agentshift-0.1.0/src/agentshift/parsers/__init__.py +1 -0
- agentshift-0.1.0/tests/__init__.py +0 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/AGENTS.md +212 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/BOOTSTRAP.md +55 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/SKILL.md +88 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/data/appointments.md +5 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/data/questions-for-doctor.md +7 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/data/symptoms-log.md +5 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/data/weight-log.md +6 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/knowledge/appointments.md +122 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/knowledge/exercise.md +114 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/knowledge/nutrition.md +112 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/knowledge/warning-signs.md +80 -0
- agentshift-0.1.0/tests/fixtures/pregnancy-companion/knowledge/week-by-week.md +198 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# AgentShift Code Owners
|
|
2
|
+
# These owners will be automatically requested for review on PRs.
|
|
3
|
+
|
|
4
|
+
# Global โ all PRs need maintainer review
|
|
5
|
+
* @ogkranthi
|
|
6
|
+
|
|
7
|
+
# Core IR schema โ changes here affect everything
|
|
8
|
+
src/agentshift/ir.py @ogkranthi
|
|
9
|
+
specs/ir-schema.json @ogkranthi
|
|
10
|
+
|
|
11
|
+
# Parsers
|
|
12
|
+
src/agentshift/parsers/ @ogkranthi
|
|
13
|
+
|
|
14
|
+
# Emitters
|
|
15
|
+
src/agentshift/emitters/ @ogkranthi
|
|
16
|
+
|
|
17
|
+
# CLI
|
|
18
|
+
src/agentshift/cli.py @ogkranthi
|
|
19
|
+
|
|
20
|
+
# CI/CD and project config
|
|
21
|
+
.github/ @ogkranthi
|
|
22
|
+
pyproject.toml @ogkranthi
|
|
23
|
+
|
|
24
|
+
# Specs โ format documentation
|
|
25
|
+
specs/ @ogkranthi
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Report a bug in AgentShift
|
|
3
|
+
title: "[Bug]: "
|
|
4
|
+
labels: ["bug", "triage"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for reporting a bug! Please fill out the sections below.
|
|
10
|
+
|
|
11
|
+
- type: input
|
|
12
|
+
id: version
|
|
13
|
+
attributes:
|
|
14
|
+
label: AgentShift Version
|
|
15
|
+
description: Run `agentshift --version` to get this
|
|
16
|
+
placeholder: "0.1.0"
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
|
|
20
|
+
- type: dropdown
|
|
21
|
+
id: command
|
|
22
|
+
attributes:
|
|
23
|
+
label: Which command?
|
|
24
|
+
options:
|
|
25
|
+
- convert
|
|
26
|
+
- diff
|
|
27
|
+
- validate
|
|
28
|
+
- other
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
|
|
32
|
+
- type: dropdown
|
|
33
|
+
id: platform
|
|
34
|
+
attributes:
|
|
35
|
+
label: Which platform(s) are involved?
|
|
36
|
+
multiple: true
|
|
37
|
+
options:
|
|
38
|
+
- OpenClaw
|
|
39
|
+
- Claude Code
|
|
40
|
+
- Microsoft Copilot
|
|
41
|
+
- AWS Bedrock
|
|
42
|
+
- GCP Vertex AI
|
|
43
|
+
- LangGraph
|
|
44
|
+
- CrewAI
|
|
45
|
+
- Other
|
|
46
|
+
|
|
47
|
+
- type: textarea
|
|
48
|
+
id: description
|
|
49
|
+
attributes:
|
|
50
|
+
label: What happened?
|
|
51
|
+
description: A clear description of the bug
|
|
52
|
+
placeholder: When I run `agentshift convert --to copilot ./my-skill/`, it fails with...
|
|
53
|
+
validations:
|
|
54
|
+
required: true
|
|
55
|
+
|
|
56
|
+
- type: textarea
|
|
57
|
+
id: expected
|
|
58
|
+
attributes:
|
|
59
|
+
label: Expected behavior
|
|
60
|
+
description: What did you expect to happen?
|
|
61
|
+
validations:
|
|
62
|
+
required: true
|
|
63
|
+
|
|
64
|
+
- type: textarea
|
|
65
|
+
id: reproduce
|
|
66
|
+
attributes:
|
|
67
|
+
label: Steps to reproduce
|
|
68
|
+
description: Minimal steps to reproduce the bug
|
|
69
|
+
value: |
|
|
70
|
+
1. Create a skill with...
|
|
71
|
+
2. Run `agentshift convert ...`
|
|
72
|
+
3. See error...
|
|
73
|
+
validations:
|
|
74
|
+
required: true
|
|
75
|
+
|
|
76
|
+
- type: textarea
|
|
77
|
+
id: logs
|
|
78
|
+
attributes:
|
|
79
|
+
label: Error output / logs
|
|
80
|
+
description: Paste the full error output
|
|
81
|
+
render: shell
|
|
82
|
+
|
|
83
|
+
- type: input
|
|
84
|
+
id: os
|
|
85
|
+
attributes:
|
|
86
|
+
label: OS
|
|
87
|
+
placeholder: "macOS 14.2 / Ubuntu 22.04 / Windows 11"
|
|
88
|
+
|
|
89
|
+
- type: input
|
|
90
|
+
id: python
|
|
91
|
+
attributes:
|
|
92
|
+
label: Python version
|
|
93
|
+
placeholder: "3.12.1"
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: Suggest a new feature or improvement
|
|
3
|
+
title: "[Feature]: "
|
|
4
|
+
labels: ["enhancement"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for suggesting an improvement! Please describe your idea below.
|
|
10
|
+
|
|
11
|
+
- type: dropdown
|
|
12
|
+
id: area
|
|
13
|
+
attributes:
|
|
14
|
+
label: Area
|
|
15
|
+
options:
|
|
16
|
+
- New platform support
|
|
17
|
+
- Parser improvement
|
|
18
|
+
- Emitter improvement
|
|
19
|
+
- CLI / UX
|
|
20
|
+
- Diff / validation
|
|
21
|
+
- IR schema
|
|
22
|
+
- Documentation
|
|
23
|
+
- Other
|
|
24
|
+
validations:
|
|
25
|
+
required: true
|
|
26
|
+
|
|
27
|
+
- type: textarea
|
|
28
|
+
id: description
|
|
29
|
+
attributes:
|
|
30
|
+
label: Description
|
|
31
|
+
description: A clear description of what you'd like
|
|
32
|
+
placeholder: I'd like AgentShift to support converting agents to/from...
|
|
33
|
+
validations:
|
|
34
|
+
required: true
|
|
35
|
+
|
|
36
|
+
- type: textarea
|
|
37
|
+
id: motivation
|
|
38
|
+
attributes:
|
|
39
|
+
label: Motivation
|
|
40
|
+
description: Why is this useful? What problem does it solve?
|
|
41
|
+
validations:
|
|
42
|
+
required: true
|
|
43
|
+
|
|
44
|
+
- type: textarea
|
|
45
|
+
id: alternatives
|
|
46
|
+
attributes:
|
|
47
|
+
label: Alternatives considered
|
|
48
|
+
description: Have you considered other approaches?
|
|
49
|
+
|
|
50
|
+
- type: textarea
|
|
51
|
+
id: additional
|
|
52
|
+
attributes:
|
|
53
|
+
label: Additional context
|
|
54
|
+
description: Any other context, screenshots, or examples
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
name: New Platform Support
|
|
2
|
+
description: Request support for a new agent platform
|
|
3
|
+
title: "[Platform]: "
|
|
4
|
+
labels: ["platform-request", "enhancement"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Want AgentShift to support a new agent platform? Tell us about it!
|
|
10
|
+
|
|
11
|
+
- type: input
|
|
12
|
+
id: platform
|
|
13
|
+
attributes:
|
|
14
|
+
label: Platform name
|
|
15
|
+
placeholder: "e.g., Salesforce Agentforce, ServiceNow AI Agents"
|
|
16
|
+
validations:
|
|
17
|
+
required: true
|
|
18
|
+
|
|
19
|
+
- type: dropdown
|
|
20
|
+
id: direction
|
|
21
|
+
attributes:
|
|
22
|
+
label: Direction needed
|
|
23
|
+
options:
|
|
24
|
+
- Parser (read from this platform)
|
|
25
|
+
- Emitter (write to this platform)
|
|
26
|
+
- Both (bidirectional)
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
|
|
30
|
+
- type: textarea
|
|
31
|
+
id: format
|
|
32
|
+
attributes:
|
|
33
|
+
label: Agent definition format
|
|
34
|
+
description: How are agents defined on this platform? Links to docs appreciated.
|
|
35
|
+
placeholder: |
|
|
36
|
+
Agents are defined as JSON manifests with...
|
|
37
|
+
Docs: https://...
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: example
|
|
43
|
+
attributes:
|
|
44
|
+
label: Example agent definition
|
|
45
|
+
description: Paste an example agent config from this platform
|
|
46
|
+
render: json
|
|
47
|
+
|
|
48
|
+
- type: dropdown
|
|
49
|
+
id: willingness
|
|
50
|
+
attributes:
|
|
51
|
+
label: Would you contribute this?
|
|
52
|
+
options:
|
|
53
|
+
- "Yes, I can implement it"
|
|
54
|
+
- "I can help test it"
|
|
55
|
+
- "Just requesting โ no bandwidth to contribute"
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
<!-- What does this PR do? Keep it to 1-3 sentences. -->
|
|
4
|
+
|
|
5
|
+
## Type
|
|
6
|
+
|
|
7
|
+
- [ ] New parser (source platform)
|
|
8
|
+
- [ ] New emitter (target platform)
|
|
9
|
+
- [ ] IR schema change
|
|
10
|
+
- [ ] Bug fix
|
|
11
|
+
- [ ] CLI improvement
|
|
12
|
+
- [ ] Documentation
|
|
13
|
+
- [ ] Tests
|
|
14
|
+
- [ ] CI / tooling
|
|
15
|
+
|
|
16
|
+
## Changes
|
|
17
|
+
|
|
18
|
+
<!-- Bullet list of what changed -->
|
|
19
|
+
|
|
20
|
+
-
|
|
21
|
+
|
|
22
|
+
## Platforms affected
|
|
23
|
+
|
|
24
|
+
<!-- Which platforms does this touch? -->
|
|
25
|
+
|
|
26
|
+
- [ ] OpenClaw
|
|
27
|
+
- [ ] Claude Code
|
|
28
|
+
- [ ] Microsoft Copilot
|
|
29
|
+
- [ ] AWS Bedrock
|
|
30
|
+
- [ ] GCP Vertex AI
|
|
31
|
+
- [ ] None (infrastructure / docs)
|
|
32
|
+
|
|
33
|
+
## Testing
|
|
34
|
+
|
|
35
|
+
<!-- How did you verify this works? -->
|
|
36
|
+
|
|
37
|
+
- [ ] Unit tests pass (`pytest tests/`)
|
|
38
|
+
- [ ] Added new tests for this change
|
|
39
|
+
- [ ] Tested with a real agent/skill
|
|
40
|
+
- [ ] Round-trip test passes (if parser/emitter change)
|
|
41
|
+
- [ ] Generated configs validated against platform schema
|
|
42
|
+
|
|
43
|
+
## Checklist
|
|
44
|
+
|
|
45
|
+
- [ ] Code follows the [contributing guidelines](CONTRIBUTING.md)
|
|
46
|
+
- [ ] Type hints on all new function signatures
|
|
47
|
+
- [ ] No secrets, tokens, or credentials in the diff
|
|
48
|
+
- [ ] Updated relevant specs in `specs/` (if IR or format change)
|
|
49
|
+
- [ ] PR is scoped to a single concern (no unrelated changes)
|
|
50
|
+
|
|
51
|
+
## Related issues
|
|
52
|
+
|
|
53
|
+
<!-- Link related issues: Fixes #123, Relates to #456 -->
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# GitHub Repository Setup (Manual Steps)
|
|
2
|
+
|
|
3
|
+
These settings require admin access and can't be set via the current CLI token.
|
|
4
|
+
|
|
5
|
+
## 1. Repository Settings
|
|
6
|
+
|
|
7
|
+
Go to **Settings โ General**:
|
|
8
|
+
|
|
9
|
+
- [x] Description: "CLI transpiler for converting AI agents between platforms"
|
|
10
|
+
- [x] Enable Discussions
|
|
11
|
+
- [x] Enable Issues
|
|
12
|
+
- [x] Disable Wiki (not needed โ docs live in repo)
|
|
13
|
+
- [x] Allow auto-merge
|
|
14
|
+
- [x] Automatically delete head branches after merge
|
|
15
|
+
|
|
16
|
+
## 2. Branch Protection Rules
|
|
17
|
+
|
|
18
|
+
Go to **Settings โ Branches โ Add rule**:
|
|
19
|
+
|
|
20
|
+
**Branch name pattern:** `main`
|
|
21
|
+
|
|
22
|
+
- [x] Require a pull request before merging
|
|
23
|
+
- [x] Require approvals: **1**
|
|
24
|
+
- [x] Dismiss stale pull request approvals when new commits are pushed
|
|
25
|
+
- [x] Require review from Code Owners
|
|
26
|
+
- [x] Require status checks to pass before merging
|
|
27
|
+
- [x] Require branches to be up to date before merging
|
|
28
|
+
- Required checks:
|
|
29
|
+
- `Lint`
|
|
30
|
+
- `Test (Python 3.12)`
|
|
31
|
+
- `Build package`
|
|
32
|
+
- [x] Require conversation resolution before merging
|
|
33
|
+
- [ ] Do NOT require signed commits (keeps barrier low for contributors)
|
|
34
|
+
- [x] Do not allow force pushes
|
|
35
|
+
- [x] Do not allow deletions
|
|
36
|
+
|
|
37
|
+
## 3. Labels
|
|
38
|
+
|
|
39
|
+
Create these labels in **Issues โ Labels**:
|
|
40
|
+
|
|
41
|
+
| Label | Color | Description |
|
|
42
|
+
|-------|-------|-------------|
|
|
43
|
+
| `bug` | `#d73a4a` | Something isn't working |
|
|
44
|
+
| `enhancement` | `#a2eeef` | New feature or request |
|
|
45
|
+
| `platform-request` | `#0075ca` | Request for a new platform |
|
|
46
|
+
| `good first issue` | `#7057ff` | Good for newcomers |
|
|
47
|
+
| `help wanted` | `#008672` | Extra attention is needed |
|
|
48
|
+
| `triage` | `#e4e669` | Needs triage |
|
|
49
|
+
| `parser` | `#1d76db` | Related to a parser |
|
|
50
|
+
| `emitter` | `#1d76db` | Related to an emitter |
|
|
51
|
+
| `ir-schema` | `#d876e3` | Related to the IR schema |
|
|
52
|
+
| `cli` | `#bfd4f2` | Related to the CLI |
|
|
53
|
+
| `docs` | `#0075ca` | Documentation |
|
|
54
|
+
| `wontfix` | `#ffffff` | This will not be worked on |
|
|
55
|
+
|
|
56
|
+
## 4. Enable GitHub Discussions
|
|
57
|
+
|
|
58
|
+
Go to **Settings โ General โ Features**:
|
|
59
|
+
- [x] Discussions
|
|
60
|
+
|
|
61
|
+
Create these discussion categories:
|
|
62
|
+
- **Announcements** (maintainers only)
|
|
63
|
+
- **Ideas** (open)
|
|
64
|
+
- **Q&A** (open, answer-markable)
|
|
65
|
+
- **Show and Tell** (open)
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
lint:
|
|
14
|
+
name: Lint
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.12"
|
|
21
|
+
- name: Install ruff
|
|
22
|
+
run: pip install ruff
|
|
23
|
+
- name: Check formatting
|
|
24
|
+
run: ruff format --check src/ tests/
|
|
25
|
+
- name: Check linting
|
|
26
|
+
run: ruff check src/ tests/
|
|
27
|
+
|
|
28
|
+
test:
|
|
29
|
+
name: Test (Python ${{ matrix.python-version }})
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
strategy:
|
|
32
|
+
matrix:
|
|
33
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/checkout@v4
|
|
36
|
+
- uses: actions/setup-python@v5
|
|
37
|
+
with:
|
|
38
|
+
python-version: ${{ matrix.python-version }}
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: pip install -e ".[dev]"
|
|
41
|
+
- name: Run tests
|
|
42
|
+
run: pytest tests/ -v --tb=short --cov=agentshift --cov-report=term-missing
|
|
43
|
+
- name: Check coverage
|
|
44
|
+
run: pytest tests/ --cov=agentshift --cov-fail-under=60
|
|
45
|
+
|
|
46
|
+
build:
|
|
47
|
+
name: Build package
|
|
48
|
+
runs-on: ubuntu-latest
|
|
49
|
+
needs: [lint, test]
|
|
50
|
+
steps:
|
|
51
|
+
- uses: actions/checkout@v4
|
|
52
|
+
- uses: actions/setup-python@v5
|
|
53
|
+
with:
|
|
54
|
+
python-version: "3.12"
|
|
55
|
+
- name: Install build tools
|
|
56
|
+
run: pip install build
|
|
57
|
+
- name: Build package
|
|
58
|
+
run: python -m build
|
|
59
|
+
- name: Verify CLI entry point
|
|
60
|
+
run: |
|
|
61
|
+
pip install dist/*.whl
|
|
62
|
+
agentshift --help
|
|
63
|
+
|
|
64
|
+
schema-validate:
|
|
65
|
+
name: Validate IR Schema
|
|
66
|
+
runs-on: ubuntu-latest
|
|
67
|
+
steps:
|
|
68
|
+
- uses: actions/checkout@v4
|
|
69
|
+
- uses: actions/setup-python@v5
|
|
70
|
+
with:
|
|
71
|
+
python-version: "3.12"
|
|
72
|
+
- name: Install dependencies
|
|
73
|
+
run: pip install jsonschema pyyaml
|
|
74
|
+
- name: Validate IR schema
|
|
75
|
+
run: |
|
|
76
|
+
python -c "
|
|
77
|
+
import json, sys
|
|
78
|
+
from pathlib import Path
|
|
79
|
+
schema_path = Path('specs/ir-schema.json')
|
|
80
|
+
if schema_path.exists():
|
|
81
|
+
schema = json.loads(schema_path.read_text())
|
|
82
|
+
print(f'IR schema valid: {len(schema)} top-level keys')
|
|
83
|
+
else:
|
|
84
|
+
print('IR schema not yet created โ skipping')
|
|
85
|
+
"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
.venv/
|
|
3
|
+
__pycache__/
|
|
4
|
+
*.py[cod]
|
|
5
|
+
*.egg-info/
|
|
6
|
+
dist/
|
|
7
|
+
build/
|
|
8
|
+
*.egg
|
|
9
|
+
|
|
10
|
+
# Testing
|
|
11
|
+
.pytest_cache/
|
|
12
|
+
.coverage
|
|
13
|
+
htmlcov/
|
|
14
|
+
.mypy_cache/
|
|
15
|
+
|
|
16
|
+
# IDE
|
|
17
|
+
.vscode/
|
|
18
|
+
.idea/
|
|
19
|
+
*.swp
|
|
20
|
+
*.swo
|
|
21
|
+
|
|
22
|
+
# OS
|
|
23
|
+
.DS_Store
|
|
24
|
+
Thumbs.db
|
|
25
|
+
|
|
26
|
+
# OpenClaw workspace state (local only)
|
|
27
|
+
.openclaw/
|
|
28
|
+
HEARTBEAT.md
|
|
29
|
+
IDENTITY.md
|
|
30
|
+
SOUL.md
|
|
31
|
+
TOOLS.md
|
|
32
|
+
USER.md
|
|
33
|
+
|
|
34
|
+
# Environment
|
|
35
|
+
.env
|
|
36
|
+
.env.local
|
|
37
|
+
|
|
38
|
+
# Generated output
|
|
39
|
+
agentshift-output/
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# AgentShift โ Autonomous Build Crew
|
|
2
|
+
|
|
3
|
+
## Architecture
|
|
4
|
+
|
|
5
|
+
AgentShift is built by a team of 4 autonomous agents coordinated through a shared BACKLOG.md.
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
๐ข Chief (coordinator)
|
|
9
|
+
โโโ ๐ Architect (specs, schemas, research)
|
|
10
|
+
โโโ ๐ป Dev (Python implementation)
|
|
11
|
+
โโโ ๐งช Tester (tests, validation, QA)
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Agent Roles
|
|
15
|
+
|
|
16
|
+
### ๐ข Chief (`agentshift-chief`)
|
|
17
|
+
- **Owns**: Coordination, backlog management, status updates
|
|
18
|
+
- **Tools**: sessions_spawn, sessions_send, message, cron
|
|
19
|
+
- **Telegram**: Receives commands, sends status updates
|
|
20
|
+
- **Does NOT**: Write code, specs, or tests
|
|
21
|
+
|
|
22
|
+
### ๐ Architect (`agentshift-architect`)
|
|
23
|
+
- **Owns**: IR schema, platform format specs, mapping docs
|
|
24
|
+
- **Writes to**: `specs/`, `docs/adr/`
|
|
25
|
+
- **Tools**: web_search, web_fetch, read, write, edit, exec
|
|
26
|
+
- **Sequence**: Produces specs BEFORE dev implements
|
|
27
|
+
|
|
28
|
+
### ๐ป Dev (`agentshift-dev`)
|
|
29
|
+
- **Owns**: Python codebase โ parsers, emitters, CLI, IR model
|
|
30
|
+
- **Writes to**: `src/agentshift/`, `pyproject.toml`
|
|
31
|
+
- **Tools**: read, write, edit, exec
|
|
32
|
+
- **Sequence**: Implements AFTER architect produces spec
|
|
33
|
+
|
|
34
|
+
### ๐งช Tester (`agentshift-tester`)
|
|
35
|
+
- **Owns**: Test suite, fixtures, config validation
|
|
36
|
+
- **Writes to**: `tests/`
|
|
37
|
+
- **Tools**: read, write, edit, exec
|
|
38
|
+
- **Sequence**: Tests AFTER dev implements; also reviews dev PRs
|
|
39
|
+
|
|
40
|
+
## Build Flow
|
|
41
|
+
|
|
42
|
+
1. Chief reads BACKLOG.md, identifies ready tasks
|
|
43
|
+
2. Architect researches and writes specs (A-prefixed tasks)
|
|
44
|
+
3. Dev implements based on specs (D-prefixed tasks)
|
|
45
|
+
4. Tester writes tests and validates (T-prefixed tasks)
|
|
46
|
+
5. Tester reviews and merges dev PRs
|
|
47
|
+
6. Chief reports progress to Telegram
|
|
48
|
+
|
|
49
|
+
## Branch Convention
|
|
50
|
+
- `agent/architect/{task-id}` โ spec branches
|
|
51
|
+
- `agent/dev/{task-id}` โ implementation branches
|
|
52
|
+
- `agent/tester/{task-id}` โ test branches
|
|
53
|
+
|
|
54
|
+
## Project Structure
|
|
55
|
+
```
|
|
56
|
+
agentshift/
|
|
57
|
+
โโโ src/agentshift/ # Python package
|
|
58
|
+
โ โโโ cli.py # Typer CLI
|
|
59
|
+
โ โโโ ir.py # IR model
|
|
60
|
+
โ โโโ parsers/ # Source format parsers
|
|
61
|
+
โ โโโ emitters/ # Target format emitters
|
|
62
|
+
โโโ specs/ # Format specs (by architect)
|
|
63
|
+
โโโ tests/ # Test suite (by tester)
|
|
64
|
+
โโโ docs/ # Documentation
|
|
65
|
+
โโโ examples/ # Example conversions
|
|
66
|
+
โโโ BACKLOG.md # Task queue
|
|
67
|
+
โโโ AGENTS.md # This file
|
|
68
|
+
```
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# AgentShift Backlog
|
|
2
|
+
|
|
3
|
+
## Format
|
|
4
|
+
| ID | Priority | Owner | Status | Title |
|
|
5
|
+
|----|----------|-------|--------|-------|
|
|
6
|
+
|
|
7
|
+
**Statuses:** `ready` โ `in-progress` โ `pr-created` โ `merged` | `blocked`
|
|
8
|
+
**Owners:** `@architect`, `@dev`, `@tester`, `@chief`
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Week 1: Foundation + IR + OpenClaw โ Claude Code
|
|
13
|
+
|
|
14
|
+
| ID | Priority | Owner | Status | Title |
|
|
15
|
+
|----|----------|-------|--------|-------|
|
|
16
|
+
| A01 | P0 | @architect | merged | Design IR JSON Schema โ universal agent model |
|
|
17
|
+
| A02 | P0 | @architect | merged | Document OpenClaw SKILL.md format spec with examples |
|
|
18
|
+
| A03 | P0 | @architect | merged | Document Claude Code format spec (SKILL.md + CLAUDE.md + settings.json) |
|
|
19
|
+
| A04 | P1 | @architect | ready | Document Copilot declarative agent manifest schema 1.6 |
|
|
20
|
+
| A05 | P1 | @architect | ready | Document Bedrock agent config + OpenAPI action group format |
|
|
21
|
+
| A06 | P1 | @architect | ready | Document Vertex AI Agent Builder config format |
|
|
22
|
+
| A07 | P1 | @architect | ready | Write MCP-to-OpenAPI mapping specification |
|
|
23
|
+
| D01 | P0 | @dev | ready | Set up Python project scaffold (pyproject.toml, src layout, CLI entry point) |
|
|
24
|
+
| D02 | P0 | @dev | ready | Implement IR model as Python dataclasses (based on A01 spec) |
|
|
25
|
+
| D03 | P0 | @dev | ready | Implement OpenClaw parser (SKILL.md โ IR) |
|
|
26
|
+
| D04 | P0 | @dev | ready | Implement Claude Code emitter (IR โ SKILL.md + CLAUDE.md) |
|
|
27
|
+
| D05 | P0 | @dev | ready | Implement Claude Code parser (SKILL.md + CLAUDE.md โ IR) |
|
|
28
|
+
| D06 | P0 | @dev | ready | Implement `agentshift convert` CLI command |
|
|
29
|
+
| T01 | P0 | @tester | ready | Create test fixture skills (simple, tool-heavy, cron-knowledge) |
|
|
30
|
+
| T02 | P0 | @tester | ready | Write parser tests for OpenClaw parser |
|
|
31
|
+
| T03 | P0 | @tester | ready | Write round-trip tests (OpenClaw โ IR โ OpenClaw) |
|
|
32
|
+
| T04 | P0 | @tester | ready | Copy pregnancy-companion as integration test fixture |
|
|
33
|
+
|
|
34
|
+
## Week 2: Cloud Emitters
|
|
35
|
+
|
|
36
|
+
| ID | Priority | Owner | Status | Title |
|
|
37
|
+
|----|----------|-------|--------|-------|
|
|
38
|
+
| D07 | P1 | @dev | ready | Implement Copilot emitter (IR โ manifest.json + plugin.json) |
|
|
39
|
+
| D08 | P1 | @dev | ready | Implement Bedrock emitter (IR โ instruction + OpenAPI + CloudFormation) |
|
|
40
|
+
| D09 | P1 | @dev | ready | Implement Vertex AI emitter (IR โ Agent Builder config) |
|
|
41
|
+
| D10 | P1 | @dev | ready | Handle platform constraints (instruction length limits, etc.) |
|
|
42
|
+
| T05 | P1 | @tester | ready | Write emitter tests for all cloud targets |
|
|
43
|
+
| T06 | P1 | @tester | ready | Validate generated Copilot manifest against JSON schema |
|
|
44
|
+
|
|
45
|
+
## Week 3: Diff + Validate
|
|
46
|
+
|
|
47
|
+
| ID | Priority | Owner | Status | Title |
|
|
48
|
+
|----|----------|-------|--------|-------|
|
|
49
|
+
| D11 | P1 | @dev | ready | Implement MCP-to-OpenAPI converter |
|
|
50
|
+
| D12 | P1 | @dev | ready | Implement `agentshift diff` command with rich table output |
|
|
51
|
+
| D13 | P1 | @dev | ready | Implement `agentshift validate` command |
|
|
52
|
+
| D14 | P1 | @dev | ready | Generate auth/trigger/data binding stubs with TODO comments |
|
|
53
|
+
| T07 | P1 | @tester | ready | Write diff accuracy tests |
|
|
54
|
+
| T08 | P1 | @tester | ready | Write CLI integration tests (end-to-end) |
|
|
55
|
+
| T09 | P1 | @tester | ready | Full integration test: pregnancy-companion โ all 4 targets |
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
|
8
|
+
|
|
9
|
+
## Our Standards
|
|
10
|
+
|
|
11
|
+
Examples of behavior that contributes to a positive environment:
|
|
12
|
+
|
|
13
|
+
* Using welcoming and inclusive language
|
|
14
|
+
* Being respectful of differing viewpoints and experiences
|
|
15
|
+
* Gracefully accepting constructive criticism
|
|
16
|
+
* Focusing on what is best for the community
|
|
17
|
+
* Showing empathy towards other community members
|
|
18
|
+
|
|
19
|
+
Examples of unacceptable behavior:
|
|
20
|
+
|
|
21
|
+
* The use of sexualized language or imagery, and sexual attention or advances of any kind
|
|
22
|
+
* Trolling, insulting or derogatory comments, and personal or political attacks
|
|
23
|
+
* Public or private harassment
|
|
24
|
+
* Publishing others' private information without explicit permission
|
|
25
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
26
|
+
|
|
27
|
+
## Enforcement Responsibilities
|
|
28
|
+
|
|
29
|
+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
+
|
|
31
|
+
## Scope
|
|
32
|
+
|
|
33
|
+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces.
|
|
34
|
+
|
|
35
|
+
## Enforcement
|
|
36
|
+
|
|
37
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers at **conduct@agentshift.dev** (or via GitHub issues marked `[conduct]`).
|
|
38
|
+
|
|
39
|
+
All complaints will be reviewed and investigated promptly and fairly.
|
|
40
|
+
|
|
41
|
+
## Attribution
|
|
42
|
+
|
|
43
|
+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.
|