Blee Panel Controls: | Show-All : Overview : Content : (1) : S&Q : Save : Quit : Bury |
Panel Links: | Repo Blee Panel – Blee Panel |
See Also: | At PYPI : bisos.PyCS |
|---|
An AI Activity is a durable, collaborative effort between a human and an AI assistant (Claude Code) toward a specific purpose — writing a document, building new software, enhancing existing software, and so on. Unlike a one-shot chat, an activity is expected to span many sessions, possibly across machines and over long stretches of time. Its state, conventions, and progress live in files under version control rather than in any one session’s memory.
Two org-mode files encode the activity, playing distinct roles:
AI-Activity.orgdescribes the human’s usual way of doing that kind of work — their conventions, preferred libraries, patterns, and gotchas. It is reusable: symlinked from a shared activity template so the same conventions apply to every project of that kind. Examples of concrete activities:bisos-pip(Python package authorship),xu-single(single-XU PyCS scripts),blee-panels(Blee panel authorship),lcnt(LaTeX content).AI-WorkPlan.orgdescribes this specific effort — what will be built or written, broken into stages with TODOs. It is per-effort: edited freely, org-archived as work completes, and paired withAI-DevStatus.orgwhich records where the effort stands right now.
Activities are classes of work; WorkPlans are instances. The templates
/bisos.startAiActivity/ installs are what encode this distinction on
disk — shared invariants and activity conventions are symlinked from a
templates repo (so improvements propagate); WorkPlan and DevStatus start
as safe-copies (so each effort owns its own state).
An AI Activity is collaborative in two symmetric senses. It is human-to-human — one person starts the activity, a colleague continues it later, possibly on a different machine. And it is human-to-AI — one Claude Code session begins the work, another resumes it hours or weeks later with no memory of the earlier one. Both are the same problem: continuity across a discontinuity. The state, conventions, and open TODOs must live in files that a fresh reader — human or AI — can pick up cold.
That substrate is org-mode, deliberately, not Markdown. Org-mode
provides what handoffs and resumptions actually need: TODOs with a real
state machine (TODO=/=DONE=/=WAITING=/=DEFERRED), scheduled dates and
deadlines, named anchors (<<my-target>>) that other files can
cross-reference, org-archive to retire completed subtrees without losing
history, and dynamic blocks (begin:) for machine-generated
content. Markdown can only approximate these through ad-hoc convention.
The AI Activity model relies on the structure being real — not
implied — so that a colleague or a fresh Claude session can act on
AI-WorkPlan.org and AI-DevStatus.org with the same reliability the
original author had.
bisos.startAiActivity installs the ByStar AI collaborative development
template set — CLAUDE.md, AI-WORKFLOW.org,
AI-Activity.org, AI-DevStatus.org, AI-WorkPlan.org, plus a .claude/
directory with settings.json, commands/, and optionally skills/ —
into a project directory, git repo root, or subproject.
This package is just the execution engine — the template content lives in a separately-cloned repo (https://github.com/bxexamples/aiActivityTemplates, or your own fork). See Two-Part Architecture below for details.
The installed layout is hierarchical and Claude-consumable. Files fall into two classes:
- Invariants, symlinked from
mother/(CLAUDE.md,AI-WORKFLOW.org,.claude/settings.json,.claude/commands/). Because they are symlinks to a shared source, an edit tomother/propagates automatically to every project that has beeninitiate-d against that templates base. - Activity-specific files, from
<activity>/(AI-Activity.orgsymlinked;AI-DevStatus.organdAI-WorkPlan.orgsafe-copied and editable; optionally.claude/skills/symlinked from<activity>/_skills/for on-demand task-specific instructions).
Claude Code consumes this hierarchy automatically. On startup it walks
upward from the current working directory collecting every CLAUDE.md,
which in turn imports (imports AI-WORKFLOW.org +
AI-Activity.org + AI-DevStatus.org + AI-WorkPlan.org via @
directives). Nested subprojects installed with initiateSub use a slim
CLAUDE.md that imports only the local trio; the invariants are
inherited from an ancestor via the same walk-up, avoiding duplication.
bisos.startAiActivity is a python package that uses the PyCS-Framework.
It provides the startAiActivity.cs command with the following operations:
userConfig_set/get (persistent config), initiate (base install), initiateSub
(slim subproject overlay), aiSuspend / aiResume (reversible pause/restore),
deClaudify (permanent removal), and examples (all invocations with the current
templates base).
- The Concept and Model of an AI Activity
- Collaboration Across People and Across Sessions
- Overview
- Part of BISOS — ByStar Internet Services Operating System
- bisos.startAiActivity is a Command-Only PyCS Facility
- Two-Part Architecture: Execution Engine + Templates
- Post-Installation Setup
- Installation
- Usage
- Key Files
- Documentation and Blee-Panels
- Support
- Planned Improvements
Layered on top of Debian, BISOS (By* Internet Services Operating System) is a unified and universal framework for developing both internet services and software-service continuums that use internet services. See Bootstrapping ByStar, BISOS and Blee for information about getting started with BISOS.
BISOS is a foundation for The Libre-Halaal ByStar Digital Ecosystem which is described as a cure for losses of autonomy and privacy in a book titled: Nature of Polyexistentials
bisos.startAiActivity is part of BISOS. It is a standalone package that can be used independently of the full BISOS environment.
Within BISOS and Blee specifically, the same org-mode substrate that
underpins the AI Activity state files extends further — to source-code
authorship itself — through COMEEGA (Collaborative Org-Mode Enhanced
Emacs Generalized Authorship). Under COMEEGA, .cs / .py / .sh /
.el source files carry org-mode structure (dblocks, headings,
docstrings-as-org) alongside the native language, so the workflow’s
authorship idiom runs continuously from planning through implementation
to documentation. COMEEGA is a BISOS/Blee integration detail; outside
Blee the source files still work as ordinary Python (etc.), and the AI
Activity model itself does not depend on COMEEGA.
bisos.startAiActivity is a command-line tool. It is a PyCS single-unit command service. PyCS is a framework that converges development of CLI tools and services. PyCS is an alternative to FastAPI, Typer and Click.
bisos.startAiActivity uses the PyCS-Framework to:
- Install AI collaborative development templates (symlinks and safe-copies) from a templates repo you clone separately (see Two-Part Architecture below) into any project directory, git repo root, or subproject.
- Expand
b:ai:file/particularsorg-mode dynamic blocks in installed files using pure Python, without requiring Emacs orbx-dblock. - Manage persistent user-config parameters (e.g. the templates-clone path)
via
~/.config/bisos/startAiActivity.cs/.
The core of PyCS-Framework is the bisos.b package (the PyCS-Foundation). See bisos.b for an overview.
bisos.startAiActivity is deliberately split into two independently versioned parts. Understanding this split is essential before installing.
This bisos.startAiActivity pip package contains only the execution
engine — the startAiActivity.cs command and its supporting Python
modules. It knows how to symlink, copy, expand dblocks, and manage user
config, but it ships with no template content.
The template content — the mother/ baseline files plus one directory
per activity (bisos-pip/, xu-single/, blee-panels/, lcnt/, …) —
lives in a separate repo:
https://github.com/bxexamples/aiActivityTemplates
This is an integral part of the package. Clone it (or fork it) somewhere
on your filesystem, then point startAiActivity.cs at it via user config
(see Post-Installation Setup below).
Because the templates are versioned separately from the engine, you can:
- Customize for your own conventions — fork
bxexamples/aiActivityTemplates, edit themother/invariants (CLAUDE.md contents, AI-WORKFLOW.org) or add your own activities, and pointstartAiActivity.csat your fork. Your changes propagate to every project youinitiatewithout touching the engine. - Update engine and templates independently —
pipx upgrade bisos.startAiActivityandgit pullon your templates clone are two separate operations.
startAiActivity.cs probes two well-known locations in this order and
persists the first one that exists as the default templates base:
~/aiActivityTemplates— the canonical per-user clone path. If yougit clone https://github.com/bxexamples/aiActivityTemplates ~/aiActivityTemplates(or forked and cloned your fork to that name), the engine finds it automatically./bisos/apps/defaults/ai-templates— the BISOS-provisioned system path. Present on BISOS systems out of the box.
If neither exists, no default is set and the user must run
userConfig_set --parName=templates --parValue=<path> explicitly.
The precedence is user-first, system-second: a personal clone at
~/aiActivityTemplates wins over the BISOS path even when both are
present. This lets a user working on a BISOS system point the engine at
their own fork simply by cloning it to the canonical name, with no
userConfig_set call needed.
The zero-config path:
git clone https://github.com/bxexamples/aiActivityTemplates ~/aiActivityTemplatesThat’s it. The engine auto-detects ~/aiActivityTemplates on first
invocation and persists it as the templates base. You can verify:
startAiActivity.cs -i userConfig_get --parName=templatesIf you prefer a different path, clone there instead and run
userConfig_set explicitly:
git clone https://github.com/bxexamples/aiActivityTemplates /some/other/path
startAiActivity.cs -i userConfig_set --parName=templates --parValue=/some/other/pathIf you later want to customize the templates for your own conventions,
fork the repo, edit your fork, and (if you cloned to a non-canonical
path) re-point --parValue at the fork.
BISOS provisions /bisos/apps/defaults/ai-templates as part of the
environment, and the engine auto-detects it. No clone or config step
needed.
To override with a personal fork on a BISOS system, either clone the
fork to ~/aiActivityTemplates (which then takes precedence) or run
userConfig_set with an explicit path.
The sources for the bisos.startAiActivity pip package are maintained at: https://github.com/bisos-pip/startAiActivity.
The bisos.startAiActivity pip package is available at PYPI as https://pypi.org/project/bisos.startAiActivity
You can install bisos.startAiActivity with pip or pipx.
If you need access to bisos.startAiActivity as a python module, you can install it with pip:
pip install bisos.startAiActivityIf you only need access to bisos.startAiActivity on command-line, you can install it with pipx:
pipx install bisos.startAiActivityThe following commands are made available:
startAiActivity.cs— installs AI collaborative development templates
After installation, run:
startAiActivity.cs
startAiActivity.cs -i userConfig_get --parName=templatesstartAiActivity.cs -i userConfig_set --parName=templates --parValue=/path/to/ai-templatesInstall into the current directory:
startAiActivity.cs -i initiate --activity=bisos-pipInstall at the git repo root:
startAiActivity.cs -i initiate --root=repo --activity=bisos-pipAvailable activities match subdirectories under the templates base (e.g.
bisos-pip, bisos-core, xu-single, blee-panels, lcnt). Run
startAiActivity.cs -i examples to see all available activities.
initiate installs the following into the target directory: symlinks for
the constant files (CLAUDE.md, AI-WORKFLOW.org,
AI-Activity.org); safe-copies of the editable files (AI-DevStatus.org,
AI-WorkPlan.org, with b:ai:file/particulars dblocks expanded); and
symlinks under .claude/ for settings.json, commands/, and skills/
(when the activity ships a _skills/ directory). See the Skills
subsection below.
For repos with nested loosely-related subprojects that each want their own
work plan and dev status without duplicating the invariant files
(AI-WORKFLOW.org, .claude/), use initiateSub:
startAiActivity.cs -i initiateSub --activity=bisos-pipThis installs only the subproject-specific state — a slim CLAUDE.md
(symlinked to mother/initiateSub/CLAUDE.md), AI-Activity.org symlink,
and safe-copies of AI-DevStatus.org and AI-WorkPlan.org. It does NOT
install AI-WORKFLOW.org, or .claude/ — those are
inherited from an ancestor directory via Claude Code’s CLAUDE.md walk-up.
Preconditions (initiateSub refuses if either fails):
- An ancestor directory must have been
initiate-d already (initiateSubwalks up looking for a startAiActivity-signatureCLAUDE.mdsymlink). - The target directory must not already have a
CLAUDE.md.
The --activity flag is required — a subproject may be a different
activity from its parent (e.g., a blee-panels subproject inside a
bisos-pip repo).
Nested initiateSub is supported: a subproject’s CLAUDE.md satisfies
the walk-up precondition for a sub-subproject.
aiSuspend / aiResume / deClaudify all work correctly on subproject
overlays. aiResume detects sub vs. base mode from the stashed
CLAUDE.md.dormant symlink target.
By default, initiate installs the invariant files (CLAUDE.md,
AI-WORKFLOW.org) and the activity’s AI-Activity.org as symlinks
into the templates tree. This is the intended behavior for most
activities: it means an edit to mother/CLAUDE.md or an activity’s
AI-Activity.org propagates instantly to every project that has been
initiate-d against that templates base.
Sometimes you want the opposite — a project that owns its own copy
of one of these files, edits it freely, and doesn’t affect the shared
template. The classic case is --activity=custom: a project whose
conventions are specific to itself and don’t belong in a reusable
activity template.
Both initiate and initiateSub accept --noLink=<filename> to
override the default. When passed, the named file is safe-copied
instead of symlinked:
startAiActivity.cs -i initiate --activity=custom --noLink=AI-Activity.orgOr for a subproject overlay:
startAiActivity.cs -i initiateSub --activity=custom --noLink=AI-Activity.orgResult: AI-Activity.org in the target directory is a real file
(the developer owns it), not a symlink. Everything else — CLAUDE.md,
AI-WORKFLOW.org, .claude/ entries — remains symlinked as usual.
Valid filenames for --noLink are files that initiate / initiateSub
would otherwise install as symlinks: CLAUDE.md, AI-WORKFLOW.org,
AI-Activity.org. Only one file at a time for now; multi-file support
will come via a bisos.b framework improvement later.
When an activity ships a _skills/ directory at its templates root,
initiate symlinks it to .claude/skills/ alongside the other .claude/
entries. Claude Code discovers those skills automatically and loads them
on demand when the current task calls for them.
Skills are self-contained, filesystem-based packages of task-specific
instructions. Each skill is a folder containing a SKILL.md file whose
front-matter description tells Claude when to consult the full file. This
lets a repo carry deep procedural knowledge (how to write a CS command,
how to author a Blee panel, how to release to PyPI) without loading that
content on every session — the short descriptions sit in context by
default, and Claude reads the full skill only when it matches the task
at hand.
The bisos-pip activity currently ships five skills:
writing-cs-commands— authoringcs.Cmndsubclasses (params, args, classHead dblock, common patterns).dblock-authoring— working with poly-dblockbegin:blocks, thecsuListProcpattern, and dblock-based inline unit tests.readme-authorship— writingREADME.org(repo root — the only authored README;py3/README.rstis generated bypypiProc.sh -i fullPrepand must never be hand-edited).blee-panel-authorship— the standardfullUsagePanel-en.orgskeleton and dblock content policy.bisos-pip-release— end-to-end PyPI release checklist (linters, packaging, Test-PyPI trial, upload).
To author a new skill, add a folder under the appropriate templates directory:
mother/_skills/<name>/SKILL.md— available to every activity<activity>/_skills/<name>/SKILL.md— activity-specific
Each SKILL.md starts with YAML front-matter (----delimited) containing
name: and description: fields. The description drives when Claude
loads the skill; write it as a concrete trigger (“Use when writing or
modifying a PyCS cs.Cmnd subclass”) rather than a topic label.
CLAUDE.md is safe-copied (not symlinked) at initiate / initiateSub
time. This is deliberate: Claude Code resolves symlinks before reading a
file, so any @./AI-Activity.org import inside a symlinked CLAUDE.md
would resolve against the templates directory instead of the current
project. Safe-copy pins CLAUDE.md to the project.
The tradeoff is that changes to mother/CLAUDE.md (or
mother/initiateSub/CLAUDE.md) in the templates directory don’t
automatically propagate to already-installed projects. Use refresh to
pull in an updated CLAUDE.md:
startAiActivity.cs -i refreshThe command detects base vs sub mode by walking up for a parent
AI-WORKFLOW.org symlink under templatesBase: if found, sub mode
(re-copies from mother/initiateSub/CLAUDE.md); otherwise base
(mother/CLAUDE.md). Only CLAUDE.md is refreshed for now; per-project
files (AI-DevStatus.org, AI-WorkPlan.org, and files installed with
--noLink) are never touched.
refresh also upgrades legacy installs whose CLAUDE.md is still a
symlink from the pre-safe-copy era: it unlinks the symlink and copies in
its place.
When AI collaboration on a project needs to be paused temporarily, use
aiSuspend to enter a dormant state and aiResume to restore it.
aiSuspend removes the constant symlinks (CLAUDE.md,
AI-WORKFLOW.org, AI-Activity.org) and the .claude/ entries, and renames
the editable files AI-DevStatus.org and AI-WorkPlan.org to .dormant
suffixes so that the collaboration state survives.
startAiActivity.cs -i aiSuspendaiResume restores the .dormant files, re-installs the symlinks, and
re-installs .claude/. The activity is inferred from the AI-Activity.org
symlink target or from the Activity: header inside AI-WorkPlan.org.
startAiActivity.cs -i aiResumeBoth commands operate on the current directory.
To permanently remove all AI collaboration files from a project, use
deClaudify. Unlike aiSuspend, this is irreversible — it deletes the
editable AI-DevStatus.org and AI-WorkPlan.org files along with the
symlinks and .claude/ entries.
startAiActivity.cs -i deClaudifyThe command is safe: symlinks are only removed if they are actually symlinks, and copied files are only removed if they are regular files. Anything a user has created or converted manually is left intact.
An overview of the relevant files of the bisos.startAiActivity package:
The main CS-MU (Command-Services Multi-Unit). Provides the initiate,
aiSuspend, aiResume, deClaudify, userConfig_get, and userConfig_set
commands. Uses bisos.b.userConfig_csu for persistent parameter management.
General dblock dispatch engine. Handlers register under a signature string
via registerHandler(sig, fn). expandAll(filePath) does a single-pass
regex substitution over the file, dispatching each begin: <signature>
block to its registered handler.
Self-registering handler for the b:ai:file/particulars dblock signature.
Derives the activity from the AI-Activity.org symlink and builds the
companion-docs list by scanning the directory.
All bisos-pip repos in the https://github.com/bisos-pip github organization follow the same structure. They all have setup.py files driven by pypiProc.sh.
bisos.startAiActivity is part of ByStar Digital Ecosystem http://www.by-star.net.
This module’s primary documentation is in the form of Blee-Panels. Additional information is also available in: http://www.by-star.net/PLPC/180047
bisos.startAiActivity Blee-Panels are in the ./py3/panels directory. From
within Blee and BISOS these panels are accessible under the Blee “Panels”
menu.
See ./py3/panels/bisos.startAiActivity/_nodeBase_/fullUsagePanel-en.org for a starting point.
For support, criticism, comments and questions; please contact the
author/maintainer
Mohsen Banan at:
http://mohsen.1.banan.byname.net/contact
- Upload to PyPI and test as pipx install
- Write fullUsagePanel-en.org Blee-Panel