Local-first CLI and Python package for Neksus JobSpec files
Project description
Neksus JobSpec
Neksus JobSpec is an open-source, local-first CLI and Python package for creating, validating, and rendering structured job specifications written in YAML.
Status
Current focus is a stable CLI and reusable core library. Hosted API and MCP server capabilities are planned, not yet implemented.
Job page composition
v0.2.x uses controlled, Lego-brick-like job-detail page components. You can compose validated page blocks such as header_brand, hero_banner, hero, meta_panel, CTA, responsibilities, requirements, benefits, quote, social_links, location_map, company profile, and legal blocks without defaulting to arbitrary HTML.
soft-professional is rendered from YAML components plus the built-in theme.
- Example:
examples/job-detail.jobspec.yaml - Docs:
docs/specification.md,docs/rendering.md,docs/themes.md,docs/examples.md - Deep dives:
docs/soft-professional-guide.md,docs/content-vs-theme.md,docs/render-troubleshooting.md,docs/migration-0.1-to-0.2.md
Rendered example screenshot:
For portable web output paths, use rendering.web.asset_base_url in spec files or --asset-base-url in CLI rendering commands.
Installation
pip install neksus-jobspec
Quickstart
pip install neksus-jobspec
mkdir neksus-jobspec-demo
cd neksus-jobspec-demo
neksus-jobspec init
neksus-jobspec spec new backend-engineer
neksus-jobspec spec validate jobspecs/backend-engineer.jobspec.yaml
neksus-jobspec spec render jobspecs/backend-engineer.jobspec.yaml --format web --output dist/backend-engineer.html
Python API
from neksus_jobspec import JobSpec, load_jobspec, render_jobspec, validate_jobspec
spec = load_jobspec("jobspecs/backend-engineer.jobspec.yaml")
validated = validate_jobspec(spec.model_dump())
web = render_jobspec(validated, format="web")
print(web[:80])
Basic CLI usage
neksus-jobspec init
neksus-jobspec spec new backend-engineer
neksus-jobspec spec validate jobspecs/backend-engineer.jobspec.yaml
neksus-jobspec spec render jobspecs/backend-engineer.jobspec.yaml --format web
neksus-jobspec themes
neksus-jobspec themes show soft-professional
Development
uv sync
uv run ruff check .
uv run ruff format --check .
uv run pytest
uv run pytest -m integration && uv run python -m mkdocs build --strict
Development build commands
python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*
python -m pip install --force-reinstall dist/neksus_jobspec-*.whl
python -c "import neksus_jobspec; print(neksus_jobspec.__version__)"
Release process
Create and push a semantic version tag to trigger publishing:
git tag v0.2.0
git push origin v0.2.0
You can also run the publish workflow manually from GitHub Actions (workflow_dispatch).
Release notes are maintained in docs/release-notes.md, with compatibility expectations defined in docs/versioning.md.
See full change history in CHANGELOG.md.
Security reporting and support policy: SECURITY.md.
PyPI publishing notes
Publishing is configured through GitHub Actions Trusted Publishing (OIDC) in .github/workflows/publish-pypi.yml.
No PyPI API token is used by the workflow.
License
Licensed under AGPL-3.0-or-later. See LICENSE.
Contribution policy
This repository is owner-maintained and does not use a public external contribution workflow.
Testing Strategy
Three required layers:
- Unit/CLI layer:
uv run pytest -m "not integration" - Smoke layer:
uv run pytest -m integration && uv run python -m mkdocs build --strict - Integration layer:
uv run pytest -m integration
Recommended local sequence:
uv run pytest -m "not integration"
uv run pytest -m integration && uv run python -m mkdocs build --strict
uv run pytest -m integration
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neksus_jobspec-0.2.0.tar.gz.
File metadata
- Download URL: neksus_jobspec-0.2.0.tar.gz
- Upload date:
- Size: 45.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
866ec75fa193d3b6b5e20bdef67766d3338e36a06a266eecfb012029f6fa278c
|
|
| MD5 |
ffb98796ad685b1db2cbabe4b1f98a37
|
|
| BLAKE2b-256 |
193bbac882901c9c06dbb8dc2fe7b73f5d5e53fffcc03bd7b3760b1e0f47680e
|
Provenance
The following attestation bundles were made for neksus_jobspec-0.2.0.tar.gz:
Publisher:
publish-pypi.yml on NeksusAI/NeksusJobSpec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
neksus_jobspec-0.2.0.tar.gz -
Subject digest:
866ec75fa193d3b6b5e20bdef67766d3338e36a06a266eecfb012029f6fa278c - Sigstore transparency entry: 1438573241
- Sigstore integration time:
-
Permalink:
NeksusAI/NeksusJobSpec@cb05a8319589b99f95f9fc26f2a6fb3271c79174 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/NeksusAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@cb05a8319589b99f95f9fc26f2a6fb3271c79174 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file neksus_jobspec-0.2.0-py3-none-any.whl.
File metadata
- Download URL: neksus_jobspec-0.2.0-py3-none-any.whl
- Upload date:
- Size: 59.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed3bcab975f83a370ff73a5a5b827e5e600280c046c0850b2e2ec01f1ae9c11a
|
|
| MD5 |
5514ca7f1857ac8f58edd7ef0ca06124
|
|
| BLAKE2b-256 |
ba5c31bcf9f5f2c1d4be8786ce976e367dbf681d6a8f178f0421b08bde7378c2
|
Provenance
The following attestation bundles were made for neksus_jobspec-0.2.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on NeksusAI/NeksusJobSpec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
neksus_jobspec-0.2.0-py3-none-any.whl -
Subject digest:
ed3bcab975f83a370ff73a5a5b827e5e600280c046c0850b2e2ec01f1ae9c11a - Sigstore transparency entry: 1438573246
- Sigstore integration time:
-
Permalink:
NeksusAI/NeksusJobSpec@cb05a8319589b99f95f9fc26f2a6fb3271c79174 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/NeksusAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@cb05a8319589b99f95f9fc26f2a6fb3271c79174 -
Trigger Event:
workflow_dispatch
-
Statement type: