Skip to main content

culture-guide

Workshop and scaffolding CLI for practical AI efficiency: learn core AI concepts, build your first agents, create useful CLIs, and adopt agent-first development patterns

What you get

  • An agent-first CLI cited from teken (afi-cli) — the runtime package has no third-party dependencies.
  • A mesh identity — culture.yaml (suffix + backend) and the matching prompt file for that backend (this repo ships backend: colleague → AGENTS.colleague.md; claude → CLAUDE.md, acp → AGENTS.md, gemini → GEMINI.md).
  • The canonical guildmaster skill kit (11 skills) under .claude/skills/, vendored cite-don't-import. See docs/skill-sources.md.
  • A build + deploy baseline — pytest, lint, the agent-first rubric gate, and PyPI Trusted Publishing wired into GitHub Actions.
  • The named paradigm — docs/culture.md names the culture every cloned agent inherits (agent-first CLI, cite-don't-import, learn→teach, the all-backends rule, converge-don't-vibe, …) and cites where each tenet is enforced. Addressable from the CLI: culture-guide explain culture.

Quickstart

uv sync
uv run pytest -n auto                 # run the test suite
uv run culture-guide whoami            # identity from culture.yaml
uv run culture-guide learn             # self-teaching prompt (add --json)
uv run teken cli doctor . --strict    # the agent-first rubric gate CI runs

CLI

Verb What it does
whoami Report this agent's nick, version, backend, and model from culture.yaml.
learn Print a structured self-teaching prompt.
explain <path> Markdown docs for any noun/verb path.
overview Read-only descriptive snapshot of the agent.
doctor Check the agent-identity invariants (prompt-file-present, backend-consistency).
cli overview Describe the CLI surface itself.

Every command supports --json. Results go to stdout, errors/diagnostics to stderr (never mixed). Exit codes: 0 success, 1 user error, 2 environment error, 3+ reserved.

Make it your own

  1. Rename the package culture_guide/ and the culture-guide CLI/dist name throughout pyproject.toml, the package, tests/, sonar-project.properties, and this README.md. The name is hard-coded in ~100 places, so list every occurrence first — see the git grep discovery command in CLAUDE.md, the authoritative rename procedure.
  2. Edit culture.yaml with your suffix and backend.
  3. Rewrite CLAUDE.md for your agent and run /init.
  4. Re-vendor only the skills you need from guildmaster (see docs/skill-sources.md).

See CLAUDE.md for the full conventions (version-bump-every-PR, the cicd PR lane, deploy setup).

Constant Colleague (Telegram responder)

A supervised, reset-surviving Telegram responder managed from the culture-guide CLI; it listens to a group and answers via an OpenAI/vLLM agent loop (strands-agents), colleague-swappable later.

Configure

Set these environment variables (via .env or your shell):

  • TELEGRAM_AGENT_BOT_TOKEN — your Telegram bot token
  • CONSTANT_COLLEAGUE_CHAT_ID — the Telegram group/chat ID to listen on
  • COLLEAGUE_BASE_URL — OpenAI-compatible endpoint (default http://localhost:8001/v1)
  • COLLEAGUE_MODEL — model name to use
  • CONSTANT_COLLEAGUE_BOT_USERNAME — the bot's display username
  • CONSTANT_COLLEAGUE_POLL_INTERVAL — seconds between getUpdates polls

Run

culture-guide listen start      # install + enable systemd --user unit (survives reboot)
culture-guide listen status     # is it live?
culture-guide listen stop
culture-guide listen restart
culture-guide listen logs       # prints the journalctl --user command

How it works

Pipeline: telegram-agent (receive getUpdates + send) → relevance gate (tag-override bypass; else reranker B → chat A cascade on the lobes vLLM endpoint; A-only fallback) → strands-agents agent loop (the mind) → reply; per-chat memory via eidetic; supervised by a systemd --user unit with lingering so it resumes after a server reset.

This added two runtime deps (telegram-agent[telegram], strands-agents[openai]) — culture-guide is no longer zero-third-party-dep.

License

Apache 2.0 — see LICENSE.

Metadata

Release files for culture-guide 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for culture-guide 0.10.0
File Size Uploaded Provenance
culture_guide-0.10.0.tar.gz 293.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for culture-guide 0.10.0
File Interpreter ABI Platform
culture_guide-0.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 391.0 kB

Release files / culture_guide-0.10.0.tar.gz

Download URL culture_guide-0.10.0.tar.gz
Size 293.0 kB
Tags Source
SHA-256 checksum
How to use checksums
17981a5f3a206f82ff5818028807af1c8461bbd679442d1efac70cfe5a70f58b
BLAKE2b-256 checksum
How to use checksums
b95c248b843f20a731481c737baa6b7fbca9e46344019dd03a13a0642c1640dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / culture_guide-0.10.0-py3-none-any.whl

Download URL culture_guide-0.10.0-py3-none-any.whl
Size 98.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3aeb9ff43ea2aebac41b654cf50aae968e1277a0dc721c96ec9a66b3ece05f2b
BLAKE2b-256 checksum
How to use checksums
dcccc4a6d7fb2b21b1131df34ae394427c1d86c32726c70968368293114b041f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for culture-guide 0.10.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page