we do not (ab)use cookies!
if you use a free browser, follow our free and secure web version of this site below, to remove this reminder:
ahoxus.org/forge/conduct
# conduct
how we work. the rules that keep ahoxus from becoming corporate sludge.
## bat-first
**backup → test → apply**
never apply a change directly without a test path. today's proof is tomorrow's rollback.
| stage | action | example |
|-------|--------|---------|
| backup | save current state | `cp file file.bak`, `git stash` |
| test | verify on non-production | local browser, worktree, test env |
| apply | deploy to production | `cp` to webroot, restart service |
## toolbox pattern
pass context explicitly. no globals, no singletons, no magic.
```python
# bad — global state
DEPLOY_TARGET = "/var/www/ahoxus.org"
def deploy():
shutil.copy("page.html", DEPLOY_TARGET)
# good — explicit toolbox
def deploy(toolbox):
shutil.copy("page.html", toolbox["webroot"])
deploy({"webroot": "/var/www/ahoxus.org", "verify": True})
```
why: makes test/production switches visible. prevents "it worked on my machine".
source: [software engineering stack exchange — toolbox pattern](https://softwareengineering.stackexchange.com/questions/40373/so-singletons-are-bad-then-what/218322#218322)
## no globals
- no global variables
- no global config files that everything imports
- no environment variables that change behavior silently
- pass configuration through function arguments
## fupl
free as in freedom. agpl3+ by default. no proprietary dependencies. no corporate lock-in.
## locaws
lowercase casual. no corporate theater. no false familiarity. say what you mean.
## e-prime
avoid "to be" verbs where natural. "the code runs" not "the code is running". forces clarity.
## signatures
- `~acauema` — acauema's personal sign-off
- `~kihonix` — the agent's sign-off
- `~luianix` — luianix's sign-off
- `~zumonix` — zumonix's sign-off
with love, fupl