@orgloop/module-engineering 0.1.0

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.
package/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 OrgLoop contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,88 @@
1
+ apiVersion: orgloop/v1alpha1
2
+ kind: Module
3
+ metadata:
4
+ name: engineering
5
+ description: "Engineering organization workflow — PR review, CI failure triage, Linear tickets, Claude Code supervision"
6
+ version: 1.0.0
7
+
8
+ requires:
9
+ connectors:
10
+ - type: source
11
+ id: github
12
+ connector: "@orgloop/connector-github"
13
+ required: true
14
+
15
+ - type: source
16
+ id: linear
17
+ connector: "@orgloop/connector-linear"
18
+ required: false
19
+ fallback: skip
20
+
21
+ - type: source
22
+ id: claude-code
23
+ connector: "@orgloop/connector-claude-code"
24
+ required: false
25
+ fallback: skip
26
+
27
+ - type: actor
28
+ id: agent
29
+ connector: "@orgloop/connector-openclaw"
30
+ required: true
31
+
32
+ services:
33
+ - name: openclaw
34
+ detect:
35
+ http: "http://127.0.0.1:18789/health"
36
+ install:
37
+ brew: "openclaw"
38
+ docs: "https://docs.openclaw.dev/install"
39
+ provides_credentials:
40
+ - OPENCLAW_WEBHOOK_TOKEN
41
+
42
+ credentials:
43
+ - name: GITHUB_TOKEN
44
+ description: "GitHub personal access token (repo scope)"
45
+ required: true
46
+ create_url: "https://github.com/settings/tokens/new?scopes=repo,read:org"
47
+
48
+ - name: LINEAR_API_KEY
49
+ description: "Linear API key"
50
+ required: false
51
+
52
+ - name: OPENCLAW_WEBHOOK_TOKEN
53
+ description: "OpenClaw webhook authentication token"
54
+ required: true
55
+
56
+ - name: GITHUB_WATCHED
57
+ description: "Comma-separated GitHub usernames to watch (your user + your bot)"
58
+ required: true
59
+
60
+ parameters:
61
+ - name: github_source
62
+ description: "Name of your GitHub source connector"
63
+ type: string
64
+ required: true
65
+ default: github
66
+
67
+ - name: linear_source
68
+ description: "Name of your Linear source connector"
69
+ type: string
70
+ required: false
71
+ default: linear
72
+
73
+ - name: claude_code_source
74
+ description: "Name of your Claude Code source connector"
75
+ type: string
76
+ required: false
77
+ default: claude-code
78
+
79
+ - name: agent_actor
80
+ description: "Name of your agent actor"
81
+ type: string
82
+ required: true
83
+ default: openclaw-engineering-agent
84
+
85
+ provides:
86
+ routes: 5
87
+ transforms: 3
88
+ sops: 3
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@orgloop/module-engineering",
3
+ "version": "0.1.0",
4
+ "description": "Engineering organization workflow module — PR review, CI failure, Linear triage, Claude Code supervision",
5
+ "type": "module",
6
+ "main": "orgloop-module.yaml",
7
+ "files": [
8
+ "orgloop-module.yaml",
9
+ "templates",
10
+ "sops"
11
+ ],
12
+ "keywords": [
13
+ "orgloop",
14
+ "orgloop-module",
15
+ "engineering",
16
+ "code-review",
17
+ "ci-failure"
18
+ ],
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "license": "MIT"
23
+ }
@@ -0,0 +1,19 @@
1
+ # CI Failure
2
+
3
+ A CI workflow run has failed. Diagnose and fix it.
4
+
5
+ ## Instructions
6
+
7
+ 1. Read the workflow run details — which job failed, which step
8
+ 2. Pull the failing branch and reproduce locally if possible
9
+ 3. **Test failures** -> read the failing test, understand what it expects, fix the code or test
10
+ 4. **Build failures** -> check for type errors, missing dependencies, syntax issues
11
+ 5. **Lint failures** -> run the linter locally, fix issues
12
+ 6. Push the fix and verify CI passes
13
+
14
+ ## Guidelines
15
+
16
+ - Fix the root cause, not the symptom
17
+ - If the CI failure is in code you didn't write, investigate but flag it for review
18
+ - Don't skip or disable tests to make CI pass
19
+ - If the failure is flaky (intermittent), document it and re-run once before investigating
@@ -0,0 +1,18 @@
1
+ # Linear Ticket Update
2
+
3
+ A Linear ticket has changed state. Review and take appropriate action.
4
+
5
+ ## Instructions
6
+
7
+ 1. Read the ticket details — title, description, current state, assignee, comments
8
+ 2. **Ticket moved to "In Progress"** -> pick it up, start working
9
+ 3. **Ticket moved to "In Review"** -> check if there's a PR associated, review it
10
+ 4. **New comment on your ticket** -> read and respond or act on it
11
+ 5. **Ticket created and assigned to you** -> acknowledge, plan your approach, start working
12
+
13
+ ## Guidelines
14
+
15
+ - Keep the ticket updated with your progress — add comments as you work
16
+ - If you're blocked, move the ticket to "Blocked" and explain why in a comment
17
+ - Link PRs to tickets so the workflow is traceable
18
+ - If a ticket is unclear, ask for clarification in a comment before starting work
@@ -0,0 +1,19 @@
1
+ # PR Review Received
2
+
3
+ A reviewer submitted feedback on a pull request.
4
+
5
+ ## Instructions
6
+
7
+ 1. Read every review comment carefully — understand the full context before responding
8
+ 2. **Code change requests** -> make the fix, push the commit
9
+ 3. **Questions** -> respond with a clear explanation in the PR thread
10
+ 4. **Disagreements** -> explain your reasoning. If the reviewer has a point, make the change
11
+ 5. After addressing all comments, re-request review from the same reviewer
12
+ 6. If CI fails after your changes, fix it before re-requesting review
13
+
14
+ ## Guidelines
15
+
16
+ - Don't batch responses — address each comment individually
17
+ - If a comment requires a code change, make it. Don't just acknowledge it
18
+ - Keep PR responses concise and technical
19
+ - If a review comment reveals a deeper architectural issue, flag it but fix what was asked
@@ -0,0 +1,90 @@
1
+ apiVersion: orgloop/v1alpha1
2
+ kind: RouteGroup
3
+
4
+ routes:
5
+ - name: "{{ module.name }}-pr-review"
6
+ description: "PR review submitted — address feedback"
7
+ when:
8
+ source: "{{ params.github_source }}"
9
+ events:
10
+ - resource.changed
11
+ filter:
12
+ provenance.platform_event: pull_request.review_submitted
13
+ transforms:
14
+ - ref: my-notifications
15
+ - ref: dedup
16
+ then:
17
+ actor: "{{ params.agent_actor }}"
18
+ config:
19
+ session_key: "orgloop:{{ params.github_source }}:pr-review"
20
+ wake_mode: now
21
+ deliver: true
22
+ with:
23
+ prompt_file: "{{ module.path }}/sops/pr-review.md"
24
+
25
+ - name: "{{ module.name }}-pr-comment"
26
+ description: "PR review comment — respond to inline feedback"
27
+ when:
28
+ source: "{{ params.github_source }}"
29
+ events:
30
+ - resource.changed
31
+ filter:
32
+ provenance.platform_event: pull_request_review_comment
33
+ transforms:
34
+ - ref: my-notifications
35
+ - ref: dedup
36
+ then:
37
+ actor: "{{ params.agent_actor }}"
38
+ config:
39
+ session_key: "orgloop:{{ params.github_source }}:pr-comment"
40
+ wake_mode: now
41
+ deliver: true
42
+ with:
43
+ prompt_file: "{{ module.path }}/sops/pr-review.md"
44
+
45
+ - name: "{{ module.name }}-ci-failure"
46
+ description: "CI failure — diagnose and fix"
47
+ when:
48
+ source: "{{ params.github_source }}"
49
+ events:
50
+ - resource.changed
51
+ filter:
52
+ provenance.platform_event: workflow_run.completed
53
+ transforms:
54
+ - ref: my-notifications
55
+ then:
56
+ actor: "{{ params.agent_actor }}"
57
+ config:
58
+ session_key: "orgloop:{{ params.github_source }}:ci-failure"
59
+ wake_mode: now
60
+ with:
61
+ prompt_file: "{{ module.path }}/sops/ci-failure.md"
62
+
63
+ - name: "{{ module.name }}-linear-triage"
64
+ description: "Linear issue updates — triage and act"
65
+ when:
66
+ source: "{{ params.linear_source }}"
67
+ events:
68
+ - resource.changed
69
+ transforms:
70
+ - ref: dedup
71
+ then:
72
+ actor: "{{ params.agent_actor }}"
73
+ config:
74
+ session_key: "orgloop:{{ params.linear_source }}:activity"
75
+ wake_mode: now
76
+ deliver: true
77
+ with:
78
+ prompt_file: "{{ module.path }}/sops/linear-ticket.md"
79
+
80
+ - name: "{{ module.name }}-claude-code-supervisor"
81
+ description: "Claude Code session ended — review and decide next action"
82
+ when:
83
+ source: "{{ params.claude_code_source }}"
84
+ events:
85
+ - actor.stopped
86
+ then:
87
+ actor: "{{ params.agent_actor }}"
88
+ config:
89
+ session_key: "orgloop:{{ params.claude_code_source }}:supervisor"
90
+ wake_mode: now