agent-lifecycle 0.2.0__tar.gz → 0.2.1__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.
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/CHANGELOG.md +19 -0
- agent_lifecycle-0.2.1/CLAUDE.md +166 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/PKG-INFO +1 -1
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/pyproject.toml +1 -1
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/uv.lock +31 -31
- agent_lifecycle-0.2.0/CLAUDE.md +0 -28
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/agent-config/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/agent-config/scripts/show.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/ask-colleague/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/ask-colleague/prompts/explore.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/ask-colleague/prompts/review.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/ask-colleague/prompts/write.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/ask-colleague/scripts/ask-colleague.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/assign-to-workforce/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/cicd/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/cicd/scripts/pr-status.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/cicd/scripts/workflow.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/run-tests/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/sonarclaude/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/spec-to-plan/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/think/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/think/scripts/think.sh +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/version-bump/SKILL.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/version-bump/scripts/bump.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills.local.yaml.example +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.flake8 +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.github/workflows/publish.yml +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.github/workflows/tests.yml +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.gitignore +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.markdownlint-cli2.yaml +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/LICENSE +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/README.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/__init__.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/__main__.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/__init__.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/_commands/__init__.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/_commands/cli.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/_commands/doctor.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/_commands/explain.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/_commands/learn.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/_commands/overview.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/_commands/whoami.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/_errors.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/cli/_output.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/explain/__init__.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/agent_lifecycle/explain/catalog.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/culture.yaml +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/docs/skill-sources.md +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/sonar-project.properties +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/tests/__init__.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/tests/test_cli.py +0 -0
- {agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/tests/test_cli_introspection.py +0 -0
|
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
Format follows [Keep a Changelog](https://keepachangelog.com/). This project
|
|
6
6
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.1] - 2026-06-10
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **Expanded `CLAUDE.md` from the bootstrap seed into a full runtime prompt**
|
|
15
|
+
(via `/init`). It now documents the build/test/lint/rubric commands, the CLI
|
|
16
|
+
dispatch architecture (the `--json` argv pre-peek, the `register()` pattern,
|
|
17
|
+
`CliError` traceback suppression), the two cross-cutting contracts (error
|
|
18
|
+
shape + stdout/stderr split), the four parallel registries a new verb must
|
|
19
|
+
update, the identity/`whoami` source-of-truth, and the version-bump /
|
|
20
|
+
cite-don't-import / rename / CI conventions. Flags that the stated
|
|
21
|
+
process-lifecycle-supervisor domain is **not built yet** — the package ships
|
|
22
|
+
only the template's introspection CLI today — so a future instance does not
|
|
23
|
+
mistake the scaffold for the runtime.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
8
27
|
## [0.2.0] - 2026-06-06
|
|
9
28
|
|
|
10
29
|
### Added
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## What this repo is
|
|
6
|
+
|
|
7
|
+
`agent-lifecycle` is an AgentCulture mesh agent, scaffolded from
|
|
8
|
+
`culture-agent-template`. Its **stated domain** (see `README.md` / `pyproject.toml`)
|
|
9
|
+
is a *harness- and transport-agnostic agent runtime: supervise an agent's process
|
|
10
|
+
lifecycle independent of its harness (brain) and its transport (IRC/Slack/agtag).*
|
|
11
|
+
|
|
12
|
+
**That runtime is not built yet.** Today the package ships only the template's
|
|
13
|
+
**agent-first introspection CLI** — `whoami`, `learn`, `explain`, `overview`,
|
|
14
|
+
`doctor`, and the `cli` noun group. These verbs describe the agent to other
|
|
15
|
+
agents; none of them supervise processes. When you add the lifecycle-supervisor
|
|
16
|
+
domain, it goes in *new* noun groups alongside the existing introspection verbs,
|
|
17
|
+
not by rewriting them.
|
|
18
|
+
|
|
19
|
+
The repo is still self-describing as a "clonable template" in several user-facing
|
|
20
|
+
strings (`learn`, `explain` catalog, `overview`). That phrasing is scaffold
|
|
21
|
+
residue — as the real domain lands, update those strings to describe the runtime.
|
|
22
|
+
|
|
23
|
+
## Commands
|
|
24
|
+
|
|
25
|
+
This is a `uv` project, Python 3.12+, runtime `dependencies = []` (the CLI is
|
|
26
|
+
cited from `teken`/`agentfront`, not imported).
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
uv sync # install (incl. dev group)
|
|
30
|
+
uv run pytest -n auto # full test suite (parallel)
|
|
31
|
+
uv run pytest tests/test_cli.py::test_whoami_text -v # a single test
|
|
32
|
+
uv run agent-lifecycle whoami # run the CLI (or: python -m agent_lifecycle)
|
|
33
|
+
|
|
34
|
+
# Lint gate (exactly what CI runs — see .github/workflows/tests.yml `lint` job):
|
|
35
|
+
uv run black --check agent_lifecycle tests
|
|
36
|
+
uv run isort --check-only agent_lifecycle tests
|
|
37
|
+
uv run flake8 agent_lifecycle tests
|
|
38
|
+
uv run bandit -c pyproject.toml -r agent_lifecycle
|
|
39
|
+
markdownlint-cli2 "**/*.md" "#node_modules" "#.local" "#.claude/skills" "#.teken"
|
|
40
|
+
|
|
41
|
+
# The agent-first rubric gate (CI blocks on this):
|
|
42
|
+
uv run teken cli doctor . --strict
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Note: the `teken` binary was renamed to `agentfront`; `teken` still works as a
|
|
46
|
+
deprecated alias, which is what CI and these docs invoke.
|
|
47
|
+
|
|
48
|
+
The `run-tests` skill (`.claude/skills/run-tests/`) wraps pytest with
|
|
49
|
+
`--ci` / `--quick` / `--coverage` presets if you prefer; plain `uv run pytest`
|
|
50
|
+
is fine.
|
|
51
|
+
|
|
52
|
+
## Architecture
|
|
53
|
+
|
|
54
|
+
### CLI dispatch (`agent_lifecycle/cli/`)
|
|
55
|
+
|
|
56
|
+
`cli/__init__.py:main()` is the single entry point. The flow:
|
|
57
|
+
|
|
58
|
+
1. **Peek argv for `--json` before parsing** — parse-time errors happen before
|
|
59
|
+
`args.json` exists, so `main()` sets `_CliArgumentParser._json_hint` (a
|
|
60
|
+
class-level flag) so even argparse errors honor JSON mode.
|
|
61
|
+
2. **`_build_parser()`** registers every verb. Each command module exposes a
|
|
62
|
+
`register(sub)` function; `_build_parser` calls them in turn. **To add a verb,
|
|
63
|
+
write the module, import it in `_build_parser`, and call its `register`.** The
|
|
64
|
+
subparsers are built with `parser_class=_CliArgumentParser` so the error
|
|
65
|
+
contract propagates to nested nouns too (see the `cli` noun, which re-passes
|
|
66
|
+
`type(p)` to its own sub-subparsers).
|
|
67
|
+
3. **`_dispatch()`** invokes `args.func(args)`. Handlers return `None`/`int`
|
|
68
|
+
(success) or raise `CliError`. Any *other* exception is caught and wrapped
|
|
69
|
+
into a `CliError` so **no Python traceback ever leaks to stderr**.
|
|
70
|
+
|
|
71
|
+
### Two cross-cutting contracts (don't break these — tests and the rubric enforce them)
|
|
72
|
+
|
|
73
|
+
- **Error contract** (`cli/_errors.py`): every failure is a `CliError(code,
|
|
74
|
+
message, remediation)`. Exit codes: `0` success, `1` user-input error, `2`
|
|
75
|
+
environment/setup error, `3+` reserved. Text-mode errors render as
|
|
76
|
+
`error: <msg>` + `hint: <remediation>` on stderr — the `hint:` prefix is
|
|
77
|
+
required by the agent-first rubric.
|
|
78
|
+
- **Stream split** (`cli/_output.py`): **results to stdout, diagnostics/errors to
|
|
79
|
+
stderr, never mixed.** Every verb supports `--json`; JSON payloads go to the
|
|
80
|
+
same split streams. Use `emit_result` / `emit_error` / `emit_diagnostic` — do
|
|
81
|
+
not `print()`.
|
|
82
|
+
|
|
83
|
+
### The parallel registries that must stay in sync
|
|
84
|
+
|
|
85
|
+
A new verb touches **four** places, and the introspection verbs read each other.
|
|
86
|
+
Forgetting one is the most common bug here:
|
|
87
|
+
|
|
88
|
+
1. The command module + its `register()` call in `_build_parser`.
|
|
89
|
+
2. `explain/catalog.py` — add an `ENTRIES[("yourverb",)]` markdown entry.
|
|
90
|
+
`test_every_catalog_path_resolves` walks `known_paths()`, and
|
|
91
|
+
`overview_cli_noun_exists` rubric check expects coverage.
|
|
92
|
+
3. `cli/_commands/overview.py` — the `_VERBS` / `_ARTIFACTS` lists feed both the
|
|
93
|
+
global `overview` and `cli overview`.
|
|
94
|
+
4. `cli/_commands/learn.py` — both `_TEXT` and `_as_json_payload()` list the
|
|
95
|
+
command map; the rubric requires `learn` ≥200 chars and mentions of purpose,
|
|
96
|
+
exit codes, `--json`, and `explain`.
|
|
97
|
+
|
|
98
|
+
**Rubric invariant for nouns:** any noun with action-verbs must also expose
|
|
99
|
+
`overview`. The `cli` noun exists today purely to satisfy that
|
|
100
|
+
(`overview_cli_noun_exists`) — it has no action-verbs but still ships
|
|
101
|
+
`cli overview`. Mirror that pattern for any new noun group.
|
|
102
|
+
|
|
103
|
+
### Identity (`whoami.py` is the source of truth)
|
|
104
|
+
|
|
105
|
+
`whoami.find_culture_yaml()` walks **up from `__file__`** (not CWD) to find the
|
|
106
|
+
agent's *own* `culture.yaml`, and `read_agent_fields()` parses `suffix`/`backend`/
|
|
107
|
+
`model` from the first agent block **with a hand-rolled parser (no YAML dep)** to
|
|
108
|
+
keep runtime deps empty. `doctor.py`, `overview.py`, and `learn.py` all build on
|
|
109
|
+
`whoami.report()`. A wheel install ships no `culture.yaml`, so both `whoami` and
|
|
110
|
+
`doctor` fall back gracefully (literal defaults / a single info check, exit 0).
|
|
111
|
+
|
|
112
|
+
`doctor` mirrors the invariants `steward doctor` checks: **prompt-file-present**
|
|
113
|
+
(declared `backend` → its prompt file: `claude`→`CLAUDE.md`, `acp`→`AGENTS.md`,
|
|
114
|
+
`gemini`→`GEMINI.md`), **backend-consistency**, plus **skills-present**.
|
|
115
|
+
|
|
116
|
+
## Conventions
|
|
117
|
+
|
|
118
|
+
### Every PR bumps the version (CI-enforced)
|
|
119
|
+
|
|
120
|
+
The `version-check` job fails any PR where `pyproject.toml`'s version equals
|
|
121
|
+
`main` — **including docs/config/CI-only changes.** Use the `version-bump` skill
|
|
122
|
+
(`major|minor|patch`); it updates `pyproject.toml` and prepends a Keep-a-Changelog
|
|
123
|
+
entry to `CHANGELOG.md`. `__version__` is read from installed package metadata
|
|
124
|
+
(`importlib.metadata`), so it's not edited by hand.
|
|
125
|
+
|
|
126
|
+
### Skills are vendored cite-don't-import
|
|
127
|
+
|
|
128
|
+
`.claude/skills/` holds 11 skills copied (not depended-on) from **guildmaster**
|
|
129
|
+
(the skills supplier; `steward` keeps only the alignment role). `docs/skill-sources.md`
|
|
130
|
+
is the authoritative provenance ledger and re-sync procedure — **read it before
|
|
131
|
+
touching anything under `.claude/skills/`.** Script bodies are kept verbatim; only
|
|
132
|
+
consumer-identifying *prose* in `SKILL.md` is adapted, and every `SKILL.md` must
|
|
133
|
+
carry `type: command` (load-bearing — `core.skill_loader` silently skips files
|
|
134
|
+
without it). Tracked local divergences (e.g. `agex`→`devex`, `outsource`→
|
|
135
|
+
`ask-colleague`) are documented there.
|
|
136
|
+
|
|
137
|
+
PR work uses the `cicd` skill (layered on `devex pr`; adds SonarCloud gating via
|
|
138
|
+
`status`/`await`). Cross-repo issues + mesh messages use the `communicate` skill
|
|
139
|
+
(`agtag`-backed). Both `devex` and `agtag` are expected on PATH; `colleague` is
|
|
140
|
+
optional (only `ask-colleague` needs it).
|
|
141
|
+
|
|
142
|
+
### Renaming the package (when forking this as a new agent)
|
|
143
|
+
|
|
144
|
+
The name `agent-lifecycle` / `agent_lifecycle` is hard-coded in ~30 tracked
|
|
145
|
+
files (CLI strings, `_ISSUES_URL`, tests, `sonar-project.properties`, `README`,
|
|
146
|
+
catalog markdown). List every occurrence first:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
git grep -lI 'agent-lifecycle\|agent_lifecycle'
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Then rename the package dir, update `culture.yaml` (`suffix` + `backend`), rewrite
|
|
153
|
+
this `CLAUDE.md`, and re-vendor only the skills you need.
|
|
154
|
+
|
|
155
|
+
## CI / deploy
|
|
156
|
+
|
|
157
|
+
- **`tests.yml`**: `test` (pytest + coverage → SonarCloud, gated on `SONAR_TOKEN`
|
|
158
|
+
so fork PRs / token-less repos stay green), `lint` (black/isort/flake8/bandit/
|
|
159
|
+
markdownlint + the rubric gate), `version-check` (PR-only).
|
|
160
|
+
- **`publish.yml`**: TestPyPI on PRs from the same repo, PyPI on push to `main` —
|
|
161
|
+
both via Trusted Publishing (OIDC, no stored token). Triggered only by changes
|
|
162
|
+
under `pyproject.toml` / `agent_lifecycle/**`.
|
|
163
|
+
- **SonarCloud** (`sonar-project.properties`, key `agentculture_agent-lifecycle`):
|
|
164
|
+
`sonar.qualitygate.wait=true` blocks CI on a red gate. `relative_files = true`
|
|
165
|
+
in `[tool.coverage.run]` is required — without it coverage maps to absolute
|
|
166
|
+
paths and Sonar silently reports 0%.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-lifecycle
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Harness- and transport-agnostic agent runtime: supervises an agent's process lifecycle independent of its harness (brain) and transport (IRC/Slack/agtag).
|
|
5
5
|
Project-URL: Homepage, https://github.com/agentculture/agent-lifecycle
|
|
6
6
|
Project-URL: Issues, https://github.com/agentculture/agent-lifecycle/issues
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "agent-lifecycle"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.1"
|
|
4
4
|
description = "Harness- and transport-agnostic agent runtime: supervises an agent's process lifecycle independent of its harness (brain) and transport (IRC/Slack/agtag)."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -2,6 +2,37 @@ version = 1
|
|
|
2
2
|
revision = 3
|
|
3
3
|
requires-python = ">=3.12"
|
|
4
4
|
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "agent-lifecycle"
|
|
7
|
+
version = "0.2.1"
|
|
8
|
+
source = { editable = "." }
|
|
9
|
+
|
|
10
|
+
[package.dev-dependencies]
|
|
11
|
+
dev = [
|
|
12
|
+
{ name = "bandit" },
|
|
13
|
+
{ name = "black" },
|
|
14
|
+
{ name = "flake8" },
|
|
15
|
+
{ name = "isort" },
|
|
16
|
+
{ name = "pytest" },
|
|
17
|
+
{ name = "pytest-cov" },
|
|
18
|
+
{ name = "pytest-xdist" },
|
|
19
|
+
{ name = "teken" },
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[package.metadata]
|
|
23
|
+
|
|
24
|
+
[package.metadata.requires-dev]
|
|
25
|
+
dev = [
|
|
26
|
+
{ name = "bandit", specifier = ">=1.7.5" },
|
|
27
|
+
{ name = "black", specifier = ">=23.7.0" },
|
|
28
|
+
{ name = "flake8", specifier = ">=6.1" },
|
|
29
|
+
{ name = "isort", specifier = ">=5.12.0" },
|
|
30
|
+
{ name = "pytest", specifier = ">=8.0" },
|
|
31
|
+
{ name = "pytest-cov", specifier = ">=4.1" },
|
|
32
|
+
{ name = "pytest-xdist", specifier = ">=3.0" },
|
|
33
|
+
{ name = "teken", specifier = ">=0.8" },
|
|
34
|
+
]
|
|
35
|
+
|
|
5
36
|
[[package]]
|
|
6
37
|
name = "bandit"
|
|
7
38
|
version = "1.9.4"
|
|
@@ -154,37 +185,6 @@ wheels = [
|
|
|
154
185
|
{ url = "https://files.pythonhosted.org/packages/61/e8/cb8e80d6f9f55b99588625062822bf946cf03ed06315df4bd8397f5632a1/coverage-7.14.0-py3-none-any.whl", hash = "sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1", size = 211764, upload-time = "2026-05-10T18:02:29.538Z" },
|
|
155
186
|
]
|
|
156
187
|
|
|
157
|
-
[[package]]
|
|
158
|
-
name = "agent-lifecycle"
|
|
159
|
-
version = "0.2.0"
|
|
160
|
-
source = { editable = "." }
|
|
161
|
-
|
|
162
|
-
[package.dev-dependencies]
|
|
163
|
-
dev = [
|
|
164
|
-
{ name = "bandit" },
|
|
165
|
-
{ name = "black" },
|
|
166
|
-
{ name = "flake8" },
|
|
167
|
-
{ name = "isort" },
|
|
168
|
-
{ name = "pytest" },
|
|
169
|
-
{ name = "pytest-cov" },
|
|
170
|
-
{ name = "pytest-xdist" },
|
|
171
|
-
{ name = "teken" },
|
|
172
|
-
]
|
|
173
|
-
|
|
174
|
-
[package.metadata]
|
|
175
|
-
|
|
176
|
-
[package.metadata.requires-dev]
|
|
177
|
-
dev = [
|
|
178
|
-
{ name = "bandit", specifier = ">=1.7.5" },
|
|
179
|
-
{ name = "black", specifier = ">=23.7.0" },
|
|
180
|
-
{ name = "flake8", specifier = ">=6.1" },
|
|
181
|
-
{ name = "isort", specifier = ">=5.12.0" },
|
|
182
|
-
{ name = "pytest", specifier = ">=8.0" },
|
|
183
|
-
{ name = "pytest-cov", specifier = ">=4.1" },
|
|
184
|
-
{ name = "pytest-xdist", specifier = ">=3.0" },
|
|
185
|
-
{ name = "teken", specifier = ">=0.8" },
|
|
186
|
-
]
|
|
187
|
-
|
|
188
188
|
[[package]]
|
|
189
189
|
name = "execnet"
|
|
190
190
|
version = "2.1.2"
|
agent_lifecycle-0.2.0/CLAUDE.md
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md — seed / bootstrap placeholder
|
|
2
|
-
|
|
3
|
-
> **This is a self-initializing seed, not a finished runtime prompt.**
|
|
4
|
-
> Run `/init` (or describe the agent's domain to your AI assistant) to
|
|
5
|
-
> re-initialize this file into a full runtime prompt, using the description
|
|
6
|
-
> below and the scaffolded repo as context.
|
|
7
|
-
|
|
8
|
-
## Agent
|
|
9
|
-
|
|
10
|
-
This repository hosts the **agent-lifecycle** agent.
|
|
11
|
-
|
|
12
|
-
## Description
|
|
13
|
-
|
|
14
|
-
Harness- and transport-agnostic agent runtime: supervises an agent's process lifecycle independent of its harness (brain) and transport (IRC/Slack/agtag).
|
|
15
|
-
|
|
16
|
-
## Re-init instruction
|
|
17
|
-
|
|
18
|
-
This file is a seed. To expand it into your full runtime prompt:
|
|
19
|
-
|
|
20
|
-
1. Open this repo in Claude Code (or your preferred AI assistant).
|
|
21
|
-
2. Run `/init` — the assistant will read the repo, incorporate the description
|
|
22
|
-
above, and replace this seed with a complete `CLAUDE.md`.
|
|
23
|
-
3. Commit the result.
|
|
24
|
-
|
|
25
|
-
Until you run `/init`, `agent-lifecycle` satisfies the `steward doctor`
|
|
26
|
-
`prompt-file-present` and `backend-consistency` invariants (a `CLAUDE.md`
|
|
27
|
-
exists and `culture.yaml` declares `backend: claude`) but the prompt is not
|
|
28
|
-
yet tailored to this agent's domain.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/ask-colleague/prompts/explore.md
RENAMED
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/ask-colleague/prompts/review.md
RENAMED
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/ask-colleague/prompts/write.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/cicd/scripts/_resolve-nick.sh
RENAMED
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/cicd/scripts/portability-lint.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/fetch-issues.sh
RENAMED
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/mesh-message.sh
RENAMED
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/post-comment.sh
RENAMED
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/communicate/scripts/post-issue.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/doc-test-alignment/scripts/check.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agent_lifecycle-0.2.0 → agent_lifecycle-0.2.1}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|