5_2_0 Forgejo Our One Source of Truth #3
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#2 5_0 SmartupOS MVP ready
Smartup_Zero/1_general_forum
You do not have permission to read 2 dependencies
Reference
Smartup_Zero/2_workplace#3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
5_2_0 - Forgejo is truly our one source of truth
Objective Overview
Governance (ADM)
Summary
Forgejo must be the canonical, real-time source of truth for SmartupOS.
🔐 Architecture Decision: Engelbot as Gatekeeper
Decision (2025-10-08): Engelbot is the ONLY entity with write access to the ledger.
Rationale:
Implementation:
Impact on 5_2_0:
🏗️ Architecture Vision
Key Changes from v1:
✅ Production Readiness Checklist
1. Forgejo API Write Layer 🔴 CRITICAL
forgejo_api.pyutility module created with:fetch_csv(repo, path)→ reads CSV as list of dictsupdate_csv(repo, path, data, commit_msg)→ atomic writesappend_to_csv(repo, path, row, commit_msg)→ append-only operations2. Toolbox Script Refactoring 🟡 HIGH PRIORITY
All write scripts must use Forgejo API, not local file operations.
Team Captain Scripts:
create_task.py→ API writes totask-budgets.csvcreate_owner.py→ API writes tobook-of-owners.csv,identity-mapping.csvassess_work.py→ API writes topending-sc/transactions.csvvalidate_pending_sc.py→ API writes tosmartup-credits/transactions.csv,treasury/balance.csvassign_role.py,set_role.py→ API writes tobook-of-owners.csvcreate_objective.py→ API writes toobjectives/registry.csvconnect_matrix_owner.py→ API writes tobook-of-owners.csv, creates passportWorker Scripts:
claim_task.py→ API writes totask_claimed.csvstart_work.py,stop_work.py→ API writes towork_clock.csv,session_logs.csvLedger Maintenance:
validate_ledger.py→ reads via API (no changes, verify works)generate_public_pages.py→ reads via API, writes to wiki reposstart_slog.py→ API writes to wiki.mdfilesbootstrap_wiki.py,bootstrap_teams.py→ API writes (one-time, verify)3. YAML Policy Enforcement 🟡 HIGH PRIORITY
All scripts must validate against policy files before write operations.
policy_validator.pyutility created:currency-ledger/policies/validation-rules.yml(treasury 3× rule)credit-rates.yml(SC assessment percentages)organizational-structure.yml(team/role definitions)license-policies.yml(license types, pricing)4. Engelbot-Toolbox Integration 🔴 CRITICAL
Engelbot must be able to call Toolbox scripts in production (Clever Cloud).
Decision: Bundle Python in Docker (Option A for MVP)
requirements.txtcreated with dependencies (requests, pyyaml, python-dateutil)FORGEJO_URLFORGEJO_TOKENFORGEJO_ORGTOOLBOX_PATH=/app/toolbox/running!create_task→ callscreate_task.py --json!whoami→ callswho_am_i.py --json!tasks→ callsshow_tasks.py --json5. Testing & Validation 🟢 MEDIUM PRIORITY
Comprehensive testing before Experiment Launch.
validate_ledger.py)6. Production Deployment 🔴 LAUNCH BLOCKER
Final deployment and go-live.
!create_task📊 Success Criteria
BEFORE (Current State):
AFTER (Mission 5_2_0 Complete):
Validation:
validate_ledger.pypasses with zero errors📅 Timeline Estimate
Complexity: HIGH (foundational refactor)
Estimated Effort: 80-120 hours (570 SC budgeted across 9 tasks)
Timeline: 2-3 weeks (Oct 8 → Oct 28)
Dependencies:
🚧 Known Risks
Mitigation:
🎯 Task Breakdown (Objectives → Tasks)
Total Budget: 570 SC (~€570 at €1/SC conversion)
📈 Progress Tracking
Current Status (Oct 8, 2025): 85% → Dropping to ~40% (honest reassessment)
Why the drop?
Realistic assessment:
Updated Completion Estimate:
Target Completion: November 4, 2025 (4 weeks from now)
🔗 Dependencies
Blocks:
Blocked By:
Enables:
💬 Discussion
Key Questions to Resolve:
Concurrent Write Strategy: Optimistic (detect + retry) vs Pessimistic (locking)?
API Rate Limits: Does Forgejo API have request limits we need to respect?
Rollback Strategy: If API writes fail mid-transaction, how do we undo?
YAML Policy Priority: Which policies are MVP-critical vs. nice-to-have?
Testing Coverage: What percentage of code paths must be tested before go-live?
Matrix Room:
#5_2_forgejo_osot:smartup0.org(to be created)Forgejo Project: Track all 9 subtasks in kanban board
📚 Resources & References
Technical:
Internal:
3_1_leadership_team/toolbox/running/2_workplace/currency-ledger/policies/Prior Art:
🎓 Learning Outcomes
For Smartup Zero:
For SmartupOS (reusable for other Smartups):
Documentation deliverables:
🏁 Definition of Done
Mission 5_2_0 is complete when:
validate_ledger.pyruns against production ledger with zero errorsProgress (Autogenerated)
Progress: 81% (9/11 tasks complete)
Last Activity: 2026-02-21 by @robbert
Health: 🔴 Inactive