@tiqora/tiqora 0.0.2-dev

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.
@@ -0,0 +1,112 @@
1
+ <workflow>
2
+ <critical>The workflow execution engine is governed by: {project-root}/_tiqora/core/tasks/workflow.xml</critical>
3
+ <critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
4
+ <critical>YOU MUST ALWAYS SPEAK OUTPUT in the configured communication_language resolved from merged tiqora config.</critical>
5
+ <critical>Generate artifacts in document_language resolved from merged tiqora config, unless user explicitly asks otherwise.</critical>
6
+ <critical>Execute ALL steps in exact order; do NOT skip steps.</critical>
7
+ <critical>Do not report "completed" until all implementation and validation activities are truly finished.</critical>
8
+
9
+ <step n="1" goal="Load and merge tiqora configuration">
10
+ <action>Load project config from {project_config} as required input.</action>
11
+ <action if="project config does not exist">HALT: "✗ No project .tiqora.yaml found. Run npx tiqora init in the project root."</action>
12
+
13
+ <action>Load profile config from {profile_config} when available (optional).</action>
14
+ <action>Build effective config as: profile config (base) + project config (override).</action>
15
+ <action>Apply defaults when missing: user_name={default_user_name}, idle_threshold_minutes={default_idle_threshold_minutes}, communication_language={default_communication_language}, document_language={default_document_language}.</action>
16
+
17
+ <action>Validate required project keys: pm_tool, git_host, branch_pattern.</action>
18
+ <action if="any required project key is missing">HALT: "✗ Blocking configuration error in {project_config}: missing required keys pm_tool, git_host, and/or branch_pattern."</action>
19
+
20
+ <output>[WORKFLOW] dev-story config loaded — project + profile merged</output>
21
+ </step>
22
+
23
+ <step n="2" goal="Apply active run guard">
24
+ <action>Read {active_run_file} if present.</action>
25
+ <check if="an active run exists and is not completed">
26
+ <output>⚠ Active workflow run found for {{active_ticket_or_run}}.</output>
27
+ <ask>Do you want to resume this run or close it before starting another one? (resume/close)</ask>
28
+ <check if="user chooses resume">
29
+ <action>Resume existing run and continue.</action>
30
+ </check>
31
+ <check if="user chooses close">
32
+ <action>Mark previous run closed, then continue.</action>
33
+ </check>
34
+ </check>
35
+ </step>
36
+
37
+ <step n="3" goal="Resolve ticket context">
38
+ <action>If a ticket ID is provided, retrieve the ticket via configured PM MCP connector before challenge/implementation.</action>
39
+ <action>If pm_tool is configured and no ticket provided, ask user to choose: existing ticket or create ticket.</action>
40
+ <check if="MCP retrieval fails">
41
+ <ask>Ticket retrieval failed. Retry MCP fetch or continue in standalone short-description mode? (retry/standalone)</ask>
42
+ <check if="user chooses retry">
43
+ <action>Retry retrieval once and continue if successful.</action>
44
+ </check>
45
+ <check if="user chooses standalone">
46
+ <action>Continue with explicit ambiguity warning and queue sync retry metadata in .tiqora sync area.</action>
47
+ </check>
48
+ </check>
49
+ </step>
50
+
51
+ <step n="4" goal="Run mandatory challenge gate">
52
+ <critical>No implementation starts before challenge is passed.</critical>
53
+ <action>Capture current active persona as {{entry_persona}}.</action>
54
+ <action>Load PM persona from {project-root}/_tiqora/agents/pm.md for the challenge gate.</action>
55
+ <action>Run a PM-quality challenge on the current ticket before implementation with checks for: clarity, logical consistency, implementation completeness, dependency coverage, and acceptance testability.</action>
56
+ <action>Create challenge artifact at {workflow_steps_dir}/{{runId}}-challenge.md with: intent, AC checklist, PM challenge verdict, feasibility notes, risks/blockers, and high-level approach.</action>
57
+ <check if="PM challenge finds ticket quality gaps">
58
+ <action>Restore persona to {{entry_persona}} before waiting for user clarifications.</action>
59
+ <action>Set run state to awaiting_user.</action>
60
+ <ask>PM challenge found ticket gaps. Clarify or update the ticket before implementation proceeds.</ask>
61
+ </check>
62
+ <check if="ticket or acceptance criteria are ambiguous">
63
+ <action>Restore persona to {{entry_persona}} before waiting for user clarifications.</action>
64
+ <action>Set run state to awaiting_user.</action>
65
+ <ask>Provide clarifications to remove ambiguity before implementation proceeds.</ask>
66
+ </check>
67
+ <check if="challenge is clear">
68
+ <action>Restore persona to {{entry_persona}} before step 5+ implementation work.</action>
69
+ <output>[CHALLENGE] clarity passed — ready for implementation</output>
70
+ </check>
71
+ </step>
72
+
73
+ <step n="5" goal="Create/switch branch and persist run state">
74
+ <action>Resolve branch name from ticket ID + slug using branch_pattern from effective config.</action>
75
+ <action>Create or switch to target branch.</action>
76
+ <action>Ensure directories exist: {workflow_runs_dir} and {workflow_steps_dir}.</action>
77
+ <action>Persist active run state atomically to {active_run_file} and run artifact in {workflow_runs_dir}.</action>
78
+ <output>[WORKFLOW] dev-story started — {{ticketId}} | branch: {{branchName}}</output>
79
+ <output>[WORKFLOW] dev-story initialized — challenge in progress</output>
80
+ </step>
81
+
82
+ <step n="6" goal="Implement scope with test-first discipline">
83
+ <critical>Follow the approved challenge scope; do not implement out-of-scope features.</critical>
84
+ <action>Load Developer persona from {project-root}/_tiqora/agents/dev.md for implementation and test execution.</action>
85
+ <action>Plan concrete implementation tasks from challenge + ticket context.</action>
86
+ <action>Write failing tests first when feasible (red), implement minimal code (green), then refactor safely (refactor).</action>
87
+ <action>Run targeted and regression tests.</action>
88
+ <action>Update run artifacts and notes under .tiqora as work progresses.</action>
89
+ <action if="required dependency or architectural change exceeds scope">ASK user approval before proceeding.</action>
90
+ </step>
91
+
92
+ <step n="7" goal="Validate definition of done">
93
+ <action>Load and execute validation checklist from {validation}.</action>
94
+ <action>If checklist fails, return to implementation/validation until pass or HALT with explicit blockers.</action>
95
+ </step>
96
+
97
+ <step n="8" goal="Finalize run status and output">
98
+ <action>Restore persona to {{entry_persona}} before final workflow status communication.</action>
99
+ <check if="work is complete and validation passed">
100
+ <action>Mark run state as completed and persist atomically.</action>
101
+ <output>[WORKFLOW] dev-story completed — summary published</output>
102
+ </check>
103
+ <check if="waiting on user input">
104
+ <action>Mark run state as awaiting_user and persist atomically.</action>
105
+ <output>[WORKFLOW] dev-story awaiting_user — clarification required</output>
106
+ </check>
107
+ <check if="implementation remains in progress">
108
+ <action>Keep run state as in_progress and persist atomically.</action>
109
+ <output>[WORKFLOW] dev-story in_progress — next implementation step queued</output>
110
+ </check>
111
+ </step>
112
+ </workflow>
@@ -0,0 +1,25 @@
1
+ name: dev-story
2
+ description: "Execute a tiqora story/ticket with config merge, challenge gate, implementation, validation, and run-state tracking"
3
+ author: "Tiqora"
4
+
5
+ # Workflow engine bootstrap (required by _tiqora/core/tasks/workflow.xml)
6
+ config_source: "{project-root}/.tiqora.yaml"
7
+ date: system-generated
8
+
9
+ # Workflow components
10
+ installed_path: "{project-root}/_tiqora/workflows/4-implementation/dev-story"
11
+ instructions: "{installed_path}/instructions.xml"
12
+ validation: "{installed_path}/checklist.md"
13
+
14
+ # Runtime paths
15
+ project_config: "{project-root}/.tiqora.yaml"
16
+ profile_config: "~/.tiqora/config.yaml"
17
+ active_run_file: "{project-root}/.tiqora/state/active-run.json"
18
+ workflow_runs_dir: "{project-root}/.tiqora/workflows/runs"
19
+ workflow_steps_dir: "{project-root}/.tiqora/workflows/steps"
20
+
21
+ # Defaults applied by instructions.xml after config merge
22
+ default_user_name: "Developer"
23
+ default_idle_threshold_minutes: 15
24
+ default_communication_language: "Français"
25
+ default_document_language: "English"