original GraphTheory developer docs | Python

hermes-profile-template

Developer authoring system that turns a prompt into a complete, installable Hermes Agent profile repository with validation, CI, release checks, docs, and publication metadata.

repocodegraphtheory/hermes-profile-template
docshttps://graphtheory.xyz/hermes-profile-template/
statusoriginal GraphTheory work
audiencedevelopers and maintainers

overview

Developer authoring system that turns a prompt into a complete, installable Hermes Agent profile repository with validation, CI, release checks, docs, and publication metadata.

prompt to repoInstall the profile, describe the desired agent, generate a repository, validate it, then smoke-install the generated profile.
deterministic generationEdit templates/profile.params.yaml and run scripts/generate_profile.py for reproducible profile families.
sentence generationUse scripts/generate_from_sentence.py when you need a non-interactive prompt-to-profile path.
release readinessRun release_readiness.py before tagging so manifest version, changelog, install command, and secret scans stay aligned.

quickstart

Use these commands first. They are intentionally copyable and match the public repository workflow.

install or run

hermes profile install github.com/codegraphtheory/hermes-profile-template --name profile-architect --alias --yes
profile-architect chat

local developer setup

git clone https://github.com/codegraphtheory/hermes-profile-template.git
cd hermes-profile-template
python3 -m pip install -r requirements.txt
make test
make validate

developer workflows

The project is useful when the workflow is explicit. These are the paths to test before treating the project as production-ready.

prompt to repoInstall the profile, describe the desired agent, generate a repository, validate it, then smoke-install the generated profile.
deterministic generationEdit templates/profile.params.yaml and run scripts/generate_profile.py for reproducible profile families.
sentence generationUse scripts/generate_from_sentence.py when you need a non-interactive prompt-to-profile path.
release readinessRun release_readiness.py before tagging so manifest version, changelog, install command, and secret scans stay aligned.

repo map

Start with these files when debugging, extending, or reviewing the project.

distribution.yamlDistribution manifest. Version, env requirements, and distribution-owned paths live here.
SOUL.mdThe installed profile identity and operating contract.
scripts/validate_profile.pyRepository validator for manifests, skills, config, runtime path safety, and installability.
scripts/generate_profile.pyDeterministic generator from params YAML to profile repo.
scripts/generate_from_sentence.pyOne-sentence profile generation path with prompt expansion.
web-demo/server.pyLocal web demo backend for prompt-to-profile flows.
templates/profile.params.yamlSource of truth for generated starter profiles.
docs/profile-distribution-contract.mdBoundary between Hermes core and this template authoring layer.

validation

Do not trust the docs. Run the checks and inspect the output.

python3 scripts/validate_profile.py .
python3 -m unittest discover -s tests
python3 -m py_compile scripts/*.py
python3 scripts/profile_scorecard.py . --threshold 80
python3 scripts/discovery_optimizer.py .
python3 scripts/release_readiness.py --base origin/main --strict

configuration

Configuration surface and credential expectations.

OPENROUTER_API_KEYOptional model provider key if Hermes is not already configured.
GITHUB_TOKENOptional for GitHub-heavy profile publication workflows. Prefer gh auth when possible.

Never commit .env files, OAuth tokens, API keys, cookies, private documents, or Hermes runtime state.

troubleshooting

Common failure modes and where to look first.

generated repo fails validationRun the generated repo validator directly and inspect distribution.yaml owned paths first.
Hermes install failsUse a temporary HERMES_HOME and run hermes profile install . --yes --force from the generated repo.
release guard failsBump distribution.yaml version and add the matching CHANGELOG.md heading before release-relevant changes.

contribute

Open a focused issue or pull request with commands run, expected behavior, actual behavior, and relevant logs. Keep changes scoped. For GraphTheory public repos, maintainer commits use the GraphTheory identity and avoid private personal data.