tyrex-framework 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +274 -0
  3. package/bin/tyrex.js +445 -0
  4. package/package.json +33 -0
  5. package/templates/AGENTS.md +74 -0
  6. package/templates/CHANGELOG.md +11 -0
  7. package/templates/CLAUDE.md +74 -0
  8. package/templates/TYREX.md +60 -0
  9. package/templates/adr.md +20 -0
  10. package/templates/commands/unified/tyrex-context.md +107 -0
  11. package/templates/commands/unified/tyrex-discuss.md +141 -0
  12. package/templates/commands/unified/tyrex-do.md +133 -0
  13. package/templates/commands/unified/tyrex-evolve.md +31 -0
  14. package/templates/commands/unified/tyrex-handoff.md +215 -0
  15. package/templates/commands/unified/tyrex-help.md +293 -0
  16. package/templates/commands/unified/tyrex-init.md +134 -0
  17. package/templates/commands/unified/tyrex-new.md +156 -0
  18. package/templates/commands/unified/tyrex-openapi.md +168 -0
  19. package/templates/commands/unified/tyrex-plan.md +152 -0
  20. package/templates/commands/unified/tyrex-quick.md +31 -0
  21. package/templates/commands/unified/tyrex-readme.md +154 -0
  22. package/templates/commands/unified/tyrex-resume.md +75 -0
  23. package/templates/commands/unified/tyrex-review.md +157 -0
  24. package/templates/commands/unified/tyrex-settings.md +67 -0
  25. package/templates/commands/unified/tyrex-skills.md +150 -0
  26. package/templates/commands/unified/tyrex-status.md +158 -0
  27. package/templates/commands/unified/tyrex-wiki.md +116 -0
  28. package/templates/constitution.md +60 -0
  29. package/templates/cursor.yml +29 -0
  30. package/templates/feature.md +40 -0
  31. package/templates/prd.md +30 -0
  32. package/templates/review-checklist.md +37 -0
  33. package/templates/rfc.md +19 -0
  34. package/templates/roadmap.yml +16 -0
  35. package/templates/skill.md +16 -0
  36. package/templates/spec.md +33 -0
  37. package/templates/srs.md +27 -0
  38. package/templates/tyrex.yml +54 -0
@@ -0,0 +1,116 @@
1
+ ---
2
+ description: "Generate or update project wiki pages in docs/wiki/"
3
+ ---
4
+
5
+ # /tyrex-wiki - Generate/Update Project Wiki
6
+
7
+ You are the Tyrex Framework orchestrator. Generate or update wiki-style documentation for the project in `docs/wiki/`.
8
+
9
+ ## Agent Mode
10
+
11
+ This command runs in **plan** mode. Set `agent_mode: "plan"` in `cursor.yml` as the FIRST action.
12
+ You MUST NOT write source code. You may create/modify only `docs/wiki/` and `.tyrex/` files.
13
+
14
+ ## Behavior
15
+
16
+ ### Step 1: Project analysis
17
+
18
+ Read the project to understand what needs documenting:
19
+
20
+ 1. `.tyrex/TYREX.md` — project context, architecture, patterns
21
+ 2. `.tyrex/map/` — project mapping (if exists)
22
+ 3. Source code structure — identify major modules/areas
23
+ 4. Existing wiki pages in `docs/wiki/` — understand what's already documented
24
+ 5. ADRs in `docs/adrs/` — architecture decisions that need wiki context
25
+ 6. Feature specs in `.tyrex/features/` — completed features that may need documentation
26
+
27
+ ### Step 2: Propose wiki structure
28
+
29
+ Present a proposed wiki structure based on the project:
30
+
31
+ ```
32
+ docs/wiki/
33
+ ├── index.md # Wiki home (table of contents)
34
+ ├── getting-started.md # Onboarding guide for new developers
35
+ ├── architecture.md # System architecture overview with diagrams
36
+ ├── [area-1].md # e.g., authentication.md, payments.md
37
+ ├── [area-2].md # One page per major feature/domain area
38
+ ├── deployment.md # Deployment guide
39
+ ├── troubleshooting.md # Common issues and solutions
40
+ └── glossary.md # Project-specific terminology
41
+ ```
42
+
43
+ For each proposed page, show:
44
+ - Title
45
+ - Brief description of what it would cover
46
+ - Whether it already exists (update) or is new (create)
47
+
48
+ Ask: "Generate all pages? Or select individually?"
49
+
50
+ ### Step 3: Generate wiki pages
51
+
52
+ For each selected page, generate content following these rules:
53
+
54
+ **index.md:**
55
+ - Table of contents with links to all wiki pages
56
+ - Brief project description
57
+ - Quick navigation guide
58
+
59
+ **getting-started.md:**
60
+ - Prerequisites and setup steps
61
+ - Key concepts a new developer needs to know
62
+ - First tasks / where to start
63
+ - Links to relevant wiki pages
64
+
65
+ **architecture.md:**
66
+ - System overview with Mermaid diagrams
67
+ - Component descriptions
68
+ - Data flow
69
+ - Key design decisions (link to ADRs)
70
+
71
+ **[area].md (domain pages):**
72
+ - What this area does
73
+ - Key files and their responsibilities
74
+ - How to modify / extend this area
75
+ - Testing approach for this area
76
+ - Common patterns used
77
+
78
+ **deployment.md:**
79
+ - Environment setup
80
+ - Deployment steps
81
+ - Rollback procedures
82
+ - Monitoring / health checks
83
+
84
+ **troubleshooting.md:**
85
+ - Common errors and solutions
86
+ - Debugging tips
87
+ - Known issues and workarounds
88
+
89
+ **glossary.md:**
90
+ - Project-specific terms and their definitions
91
+ - Abbreviations used in the codebase
92
+
93
+ ### Step 4: Handle existing pages
94
+
95
+ If wiki pages already exist:
96
+ 1. Compare existing content with generated content
97
+ 2. For each page, show what would change
98
+ 3. Ask: "Update? [Y/n/merge]"
99
+ - Y: Replace entirely
100
+ - n: Skip this page
101
+ - merge: Keep user-written sections, update generated sections
102
+
103
+ ### Step 5: Commit
104
+
105
+ Update CHANGELOG.md with the wiki change.
106
+ Handle commit based on configured mode (auto/approve).
107
+
108
+ ## Rules
109
+ - Every wiki page MUST include Mermaid diagrams where architecture or flow is described
110
+ - Pages should be self-contained — a developer should be able to read one page and understand that area
111
+ - Cross-reference between pages using relative links
112
+ - Do NOT document implementation details that change frequently — focus on concepts and patterns
113
+ - Keep each page under 200 lines — split into sub-pages if needed
114
+ - Do NOT invent features or capabilities — only document what exists in the code
115
+ - Include code examples from the actual codebase when illustrating patterns
116
+ - Date each page with "Last updated: YYYY-MM-DD" at the bottom
@@ -0,0 +1,60 @@
1
+ # Constitution - {{PROJECT_NAME}}
2
+
3
+ > Inviolable principles. The AI agent MUST follow these at all times.
4
+ > The human can update this document. The AI cannot ignore it.
5
+
6
+ ## Rules
7
+
8
+ 1. **Every commit passes CI** (lint + tests + security scan)
9
+ 2. **TDD**: write tests alongside or before code
10
+ 3. **No hardcoded secrets** in code or commits
11
+ 4. **No unnecessary dependencies** - justify every addition
12
+ 5. **Simplicity > Cleverness** - the simplest solution that works wins
13
+ 6. **CHANGELOG is mandatory** - every change updates docs/CHANGELOG.md
14
+ 7. **Small commits** - one task = one commit, atomic and revertible
15
+ 8. **Documentation first** - when configured, generate docs before code
16
+
17
+ ## The Agent MUST
18
+
19
+ - Ask when in doubt instead of assuming
20
+ - Propose the simplest solution first
21
+ - Warn when something seems over-engineered
22
+ - Follow patterns documented in TYREX.md
23
+ - Update CHANGELOG.md after every change
24
+ - Run tests before considering a task complete
25
+ - Respect task dependencies defined in feature specs
26
+ - Update cursor.yml after completing each task
27
+
28
+ ## The Agent MUST NOT
29
+
30
+ - Implement without human approval of the plan
31
+ - Add features, libraries, or tools not requested
32
+ - Make commits that break CI
33
+ - Skip tests
34
+ - Generate specs or plans longer than 50 lines per feature
35
+ - Modify constitution.md without explicit human approval
36
+ - Ignore the "Out of Scope" section in feature specs
37
+ - Push to remote without explicit human approval
38
+
39
+ ## On Agent Mode
40
+
41
+ - The `agent_mode` field in `cursor.yml` controls what the agent can do
42
+ - Each `/tyrex-*` command sets `agent_mode` as its FIRST action before any other work
43
+ - The agent MUST read `agent_mode` from `cursor.yml` before taking any action
44
+ - **`plan` mode**: the agent MUST NOT create, edit, or delete source code files. Only `.tyrex/`, `docs/`, and configuration files may be modified. Analysis, planning, discussion, and documentation only.
45
+ - **`build` mode**: the agent may create, edit, and delete source code files following all other rules (TDD, small commits, CI, etc.)
46
+ - If the agent detects `agent_mode: "plan"` and is asked to write source code, it MUST refuse and suggest running `/tyrex-do` or `/tyrex-quick` instead
47
+
48
+ ## On Parallelization
49
+
50
+ - Sub-agents receive ONLY their task context + TYREX.md + constitution.md
51
+ - Sub-agents write ONLY to their own task state file
52
+ - Sub-agents do NOT modify cursor.yml (only the orchestrator does)
53
+ - Sub-agents do NOT modify CHANGELOG.md (done after wave completion)
54
+ - Conflicts in file modifications = those tasks CANNOT be parallelized
55
+
56
+ ## On Commits
57
+
58
+ - Mode "approve": write commit message + changelog entry, present to human, wait for approval
59
+ - Mode "auto": commit automatically with conventional commit message, update changelog
60
+ - Branch naming: agent suggests based on feature, human approves (or auto if configured)
@@ -0,0 +1,29 @@
1
+ # .tyrex/state/cursor.yml - Session pointer for quick recovery
2
+ # This file enables fast session resumption without re-reading the entire codebase.
3
+ # Updated by the orchestrator agent after each task completion.
4
+
5
+ last_updated: "{{DATE}}T00:00:00Z"
6
+ session_id: null
7
+
8
+ # Agent mode controls what the agent can do.
9
+ # "plan" — read, analyze, discuss, plan. MUST NOT write source code.
10
+ # "build" — implement, test, commit. May write source code following TDD and commit rules.
11
+ # Each /tyrex-* command sets this field as its FIRST action.
12
+ agent_mode: "plan"
13
+
14
+ active_feature: null
15
+ active_feature_file: null
16
+
17
+ last_task_completed: null
18
+ last_commit: null
19
+ last_action: "tyrex_initialized"
20
+
21
+ tasks_summary:
22
+ total: 0
23
+ completed: 0
24
+ in_progress: 0
25
+ pending: 0
26
+ failed: 0
27
+ blocked: 0
28
+
29
+ next_tasks: []
@@ -0,0 +1,40 @@
1
+ # Feature: [NAME]
2
+
3
+ ## Objective
4
+ <!-- 1-2 sentences: WHAT and WHY -->
5
+
6
+ ## Acceptance Criteria
7
+ - [ ] ...
8
+ - [ ] ...
9
+
10
+ ## Out of Scope
11
+ <!-- What NOT to do. Critical to prevent over-engineering. -->
12
+ - ...
13
+
14
+ ## Technical Notes
15
+ <!-- Added during /tyrex-plan phase -->
16
+
17
+ ## Tasks
18
+ <!-- Added during /tyrex-plan phase. Each task has dependency, parallelism, skill, and quality attributes. -->
19
+ <!--
20
+ ### Task 1: [description]
21
+ - **Type:** sequential | parallel
22
+ - **Depends on:** [] (task numbers)
23
+ - **Unlocks:** [] (task numbers)
24
+ - **Estimate:** small | medium | large
25
+ - **Files:** [files to create or modify]
26
+ - **Skill:** none | [skill name from .tyrex/skills/]
27
+ - **Quality:** required | recommended | optional
28
+ - **Status:** pending | in_progress | completed | failed
29
+ -->
30
+
31
+ ## Configuration
32
+ <!-- Set during /tyrex-new -->
33
+ <!--
34
+ - Commits: approve | auto
35
+ - Branch: feat/...
36
+ - Docs: [changelog, spec, srs, prd, adr, rfc, wiki, diagrams]
37
+ -->
38
+
39
+ ## Status: spec
40
+ <!-- spec | planned | in_progress | done -->
@@ -0,0 +1,30 @@
1
+ # PRD: [PRODUCT/FEATURE TITLE]
2
+
3
+ ## Date
4
+ {{DATE}}
5
+
6
+ ## Project
7
+ {{PROJECT_NAME}}
8
+
9
+ ## Problem Statement
10
+ <!-- What problem are we solving? Who is affected? -->
11
+
12
+ ## Goals & Success Metrics
13
+ <!-- Desired outcomes and how we measure success. -->
14
+
15
+ ## User Personas
16
+ <!-- Who are the target users? Brief descriptions. -->
17
+
18
+ ## Requirements
19
+
20
+ ### Must-Have
21
+ - ...
22
+
23
+ ### Nice-to-Have
24
+ - ...
25
+
26
+ ## Out of Scope
27
+ <!-- What is explicitly NOT part of this effort? -->
28
+
29
+ ## Timeline / Milestones
30
+ <!-- Optional. Key dates or phases if applicable. -->
@@ -0,0 +1,37 @@
1
+ # Review Checklist
2
+
3
+ ## Functionality
4
+ - [ ] All acceptance criteria met
5
+ - [ ] Edge cases handled
6
+ - [ ] Error handling in place
7
+
8
+ ## Code Quality
9
+ - [ ] No code duplication (DRY)
10
+ - [ ] Functions/methods < 50 lines
11
+ - [ ] Files < 300 lines
12
+ - [ ] Clear naming conventions
13
+ - [ ] Consistent with project patterns (TYREX.md)
14
+
15
+ ## Tests
16
+ - [ ] Tests cover critical paths
17
+ - [ ] Tests cover edge cases
18
+ - [ ] All tests passing
19
+ - [ ] Test-to-code ratio reasonable (aim for > 1.0x)
20
+
21
+ ## Security
22
+ - [ ] No hardcoded secrets
23
+ - [ ] Input validation present
24
+ - [ ] No SQL injection vectors
25
+ - [ ] No path traversal vectors
26
+ - [ ] Dependencies audited
27
+
28
+ ## Documentation
29
+ - [ ] CHANGELOG.md updated
30
+ - [ ] ADR created (if architecture decision was made)
31
+ - [ ] TYREX.md updated (if new patterns emerged)
32
+ - [ ] Code comments where non-obvious
33
+
34
+ ## Git
35
+ - [ ] Atomic commits (one task = one commit)
36
+ - [ ] Conventional commit messages
37
+ - [ ] No broken commits in history
@@ -0,0 +1,19 @@
1
+ # RFC-[NUMBER]: [TITLE]
2
+
3
+ ## Summary
4
+ <!-- One paragraph explanation of the proposal -->
5
+
6
+ ## Motivation
7
+ <!-- Why are we doing this? What problem does it solve? -->
8
+
9
+ ## Detailed Design
10
+ <!-- Technical details of the implementation -->
11
+
12
+ ## Drawbacks
13
+ <!-- Why should we NOT do this? -->
14
+
15
+ ## Alternatives
16
+ <!-- What other designs have been considered? -->
17
+
18
+ ## Unresolved Questions
19
+ <!-- What parts of the design are still TBD? -->
@@ -0,0 +1,16 @@
1
+ # .tyrex/roadmap.yml - Project roadmap and feature backlog
2
+ # Tracks planned, in-progress, and completed features.
3
+ # Updated by /tyrex-new (planned -> in_progress), /tyrex-review (-> done).
4
+ # Read by /tyrex-status for project-wide visibility.
5
+ #
6
+ # Status values: planned | in_progress | done | cancelled
7
+ #
8
+ # To add a planned feature manually:
9
+ # - id: "NNN"
10
+ # name: "feature-name"
11
+ # description: "Short description of the feature"
12
+ # status: planned
13
+ # referenced_in: []
14
+ # depends_on: []
15
+
16
+ features: []
@@ -0,0 +1,16 @@
1
+ # Skill: {{SKILL_NAME}}
2
+
3
+ ## Role
4
+ {{ROLE_DESCRIPTION}}
5
+
6
+ ## Expertise
7
+ {{EXPERTISE_AREAS}}
8
+
9
+ ## Guidelines
10
+ {{BEHAVIORAL_GUIDELINES}}
11
+
12
+ ## Patterns
13
+ <!-- Project-specific patterns learned over time. Initially empty, enriched after /tyrex-review. -->
14
+
15
+ ## Review Criteria
16
+ {{REVIEW_CRITERIA}}
@@ -0,0 +1,33 @@
1
+ # Spec: [TASK TITLE]
2
+
3
+ ## Feature
4
+ <!-- Reference to parent feature, e.g. Feature 001 -->
5
+
6
+ ## Date
7
+ {{DATE}}
8
+
9
+ ## Project
10
+ {{PROJECT_NAME}}
11
+
12
+ ## Objective
13
+ <!-- What does this task achieve technically? One or two sentences. -->
14
+
15
+ ## Technical Approach
16
+ <!-- How will this be implemented? Key steps, algorithms, patterns. -->
17
+
18
+ ## Constraints & Trade-offs
19
+ <!-- Known limitations, performance budgets, compatibility concerns. -->
20
+
21
+ ## Dependencies
22
+ <!-- Libraries, services, or other tasks this depends on. -->
23
+
24
+ ## Files Affected
25
+ <!-- List of files to create or modify. -->
26
+ - ...
27
+
28
+ ## Edge Cases
29
+ <!-- Scenarios that need special handling. -->
30
+
31
+ ## Testing Strategy
32
+ <!-- What tests will be written? Unit, integration, e2e? -->
33
+ - [ ] ...
@@ -0,0 +1,27 @@
1
+ # SRS: [FEATURE TITLE]
2
+
3
+ ## Feature
4
+ <!-- Reference to parent feature, e.g. Feature 001 -->
5
+
6
+ ## Date
7
+ {{DATE}}
8
+
9
+ ## Project
10
+ {{PROJECT_NAME}}
11
+
12
+ ## Functional Requirements
13
+ <!-- Numbered list of what the system must do. -->
14
+ 1. ...
15
+
16
+ ## Non-Functional Requirements
17
+ <!-- Performance, security, scalability, accessibility, etc. -->
18
+ - ...
19
+
20
+ ## User Stories
21
+ <!-- Optional. Format: As a [role], I want [goal], so that [benefit]. -->
22
+
23
+ ## Constraints
24
+ <!-- Technical, regulatory, or business constraints. -->
25
+
26
+ ## Assumptions
27
+ <!-- What are we assuming to be true for this specification? -->
@@ -0,0 +1,54 @@
1
+ # .tyrex/tyrex.yml - Tyrex Framework Configuration
2
+ # Docs: https://github.com/tyrex-framework/tyrex
3
+
4
+ project:
5
+ name: "{{PROJECT_NAME}}"
6
+ created: "{{DATE}}"
7
+
8
+ # Operation mode
9
+ mode:
10
+ commits: "{{COMMIT_MODE}}" # "auto" | "approve"
11
+ branches: "{{BRANCH_MODE}}" # "auto" | "approve"
12
+ changelog: "always" # LOCKED - always enabled
13
+ documentation: "{{DOC_MODE}}" # "always" | "suggest" | "minimal"
14
+
15
+ # Documentation defaults for new demands (/tyrex-new)
16
+ docs:
17
+ spec: true # LOCKED - always true (technical specification per task)
18
+ srs: true # Software Requirements Specification per demand
19
+ prd: true # Product Requirements Document per demand
20
+ adr: true
21
+ rfc: false
22
+ wiki: true
23
+ diagrams: true
24
+ changelog: true # LOCKED - always true
25
+
26
+ # Quality guardrails
27
+ quality:
28
+ lint: true
29
+ security_scan: true
30
+ review_checklist: true
31
+ # Adaptive quality strategy per area type
32
+ # Values: "required" (TDD mandatory) | "recommended" (tests suggested) | "optional" (ask user)
33
+ strategy:
34
+ default: "required" # Fallback for areas not listed below
35
+ api: "required" # API endpoints, controllers
36
+ workers: "required" # Background jobs, queue processors
37
+ data: "required" # Models, migrations, data layer
38
+ security: "required" # Auth, encryption, access control
39
+ frontend: "recommended" # UI components, views
40
+ mobile: "recommended" # Mobile-specific code
41
+ infra: "optional" # Docker, CI/CD, config files
42
+ docs: "optional" # Documentation generation
43
+
44
+ # Parallelization
45
+ parallel:
46
+ enabled: true
47
+ max_agents: {{MAX_AGENTS}}
48
+ auto_suggest: true # Suggest parallelization when possible
49
+
50
+ # Git
51
+ git:
52
+ branch_prefix: "{{BRANCH_PREFIX}}"
53
+ commit_style: "{{COMMIT_STYLE}}" # "conventional" | "descriptive"
54
+ auto_push: false # Never auto-push by default