Skip to main content

get-fsa-training-done

One agent skill, and the CLI behind it, for getting FSA training done: designing a programme, writing its teaching material, and designing and grading its assessments. It installs into Claude Code and the Codex CLI.

The skill has three features, each with its own CLI namespace:

Namespace What it does Docs
program design a training programme and export its workbooks README
material write lecture notes, handbooks, lab guides and worksheets README
assessment design and grade quizzes, assignments, exams and capstones README

They divide one job. A programme's session plan names, in its Training Materials column, the file that serves each session — so program declares that a slot exists and what it weighs, material writes the lecture note or lab guide, and assessment writes the quiz, brief or exam. No feature authors another's artifact, and each checks its own half of that manifest.

The skill is built from tasks — one step each, such as writing a rubric, rendering a brief, or merging a retake — composed into workflows. Ask for a whole job and the agent follows the workflow; ask for one step and it runs that task on its own.

The skill is stateless. It assumes nothing about the directory layout it was installed into and never scans a project on a hunch — it asks for its inputs first, echoes back the resolved paths, and waits for a go-ahead.

Install

pip install get-fsa-training-done

This gives you the get-fsa-training-done command and its short alias gftd. It needs Python 3.12+.

Then install the skill into your agent:

get-fsa-training-done install --platform all
Command Effect
get-fsa-training-done install --platform claude --scope user ~/.claude/skills/get-fsa-training-done
get-fsa-training-done install --platform claude --scope project ./.claude/skills/get-fsa-training-done
get-fsa-training-done install --platform codex --scope user ~/.codex/skills/get-fsa-training-done
get-fsa-training-done install --platform codex --scope project ./.codex/skills/get-fsa-training-done
get-fsa-training-done update upgrade in place, preserving files you edited
get-fsa-training-done uninstall --platform all remove exactly what was installed
get-fsa-training-done status what is installed where, and whether it drifted
get-fsa-training-done doctor check this machine for the skill's prerequisites

Add --dry-run to any of install, update, or uninstall to see the exact file-by-file plan without touching anything.

Dependencies

Installing the package pulls nothing: dependencies = [] is deliberate, so the lifecycle commands run on a bare interpreter. The libraries the worker commands need live in the managed virtualenv instead — declared once in src/get_fsa_training_done/lifecycle/envmgr/requirements/core.txt:

Library Used by
xhtml2pdf assessment render, for the brief PDF
py7zr assessment grade preprocess, for .7z submissions

get-fsa-training-done install builds that environment, so the first install needs a network and everything after it does not — which is the property that matters on an exam machine.

Two external tools are optional, and doctor reports each without failing for its absence:

  • A .rar extractor (unar, 7z or bsdtar). .rar is proprietary and has no pure-Python reader; every other archive format is read in-process.
  • Docker, for assessment sandbox: running a seed script, a JUnit suite or a pytest run that is not ours — an exam's supplied files, or a submission — in a disposable container with no network.

Rendering embeds its own fonts (see core/fonts/), so a Vietnamese brief comes out identical on every machine.

Layout

src/get_fsa_training_done/
  cli.py  skill.py          the CLI, and the one skill it installs
  lifecycle/                install, update, uninstall, status, doctor, env
  features/                 program, material, assessment (+ common)
  payload/get-fsa-training-done/
    SKILL.md                the router: workflows and tasks per feature
    references/<feature>/   overview, tasks/, workflows/, generated references
    references/common/      writing style, Vietnamese conventions, shared tasks

Development

pip install -e .
pytest
ruff check . && ruff format --check .
python scripts/sync_version.py --check
for generator in scripts/*/gen_*.py; do python "$generator" --check; done

src/get_fsa_training_done/__about__.py holds the canonical version; sync_version.py propagates it to the payload's VERSION.

Licence

MIT

Metadata

Release files for get-fsa-training-done 1.0.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 get-fsa-training-done 1.0.0
File Size Uploaded
get_fsa_training_done-1.0.0.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for get-fsa-training-done 1.0.0
File Interpreter ABI Platform
get_fsa_training_done-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.4 MB

Release files / get_fsa_training_done-1.0.0.tar.gz

Download URL get_fsa_training_done-1.0.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
7cab5c4103dca4df494a73f6ef485f8fcbf8b1aa79f2110526af24aa931cd4cf
BLAKE2b-256 checksum
How to use checksums
f56be8030c3a5f5e9234e53e9a8e4687b103c7e5f97ae7456627b54c5b487e36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / get_fsa_training_done-1.0.0-py3-none-any.whl

Download URL get_fsa_training_done-1.0.0-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
375c66716a8f18ed88ad6d26f1e47a501782a5499c85176f74514f918f6783ff
BLAKE2b-256 checksum
How to use checksums
9615046b623c2b9097c92bfcb5a1c419285541da85de90f79057be103ae0c7e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

This release

1.0.0 This release

2 release files

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