crewly 1.4.39 → 1.4.40

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 (88) hide show
  1. package/config/constants.ts +5 -11
  2. package/config/orchestrator_tasks/prompts/orchestrator-prompt.md +0 -1
  3. package/config/skills/_common/lib.sh +2 -8
  4. package/config/skills/agent/chrome-attach/SKILL.md +84 -0
  5. package/config/skills/agent/core/complete-task/execute.sh +1 -1
  6. package/config/skills/agent/vnc-browser/SKILL.md +140 -0
  7. package/config/templates/agent-agents-md.md +18 -7
  8. package/config/templates/agent-gemini-md.md +18 -7
  9. package/config/templates/content-generation-team/team-config.json +1 -2
  10. package/dist/backend/backend/src/constants.d.ts +5 -5
  11. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  12. package/dist/backend/backend/src/constants.js +3 -3
  13. package/dist/backend/backend/src/constants.js.map +1 -1
  14. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +0 -44
  15. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -1
  16. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +0 -74
  17. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -1
  18. package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts +1 -1
  19. package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts.map +1 -1
  20. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js +2 -4
  21. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js.map +1 -1
  22. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js +3 -3
  23. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js.map +1 -1
  24. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  25. package/dist/backend/backend/src/controllers/slack/slack.controller.js +0 -12
  26. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  27. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  28. package/dist/backend/backend/src/routes/api.routes.js +0 -13
  29. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  30. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/agent/agent-registration.service.js +4 -9
  32. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  33. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js +3 -18
  35. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js.map +1 -1
  36. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +1 -20
  37. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +8 -64
  39. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +1 -1
  40. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.d.ts +12 -0
  41. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.js +41 -6
  43. package/dist/backend/backend/src/services/cloud/cloud-auth.middleware.js.map +1 -1
  44. package/dist/backend/backend/src/services/core/storage.service.d.ts +7 -0
  45. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/core/storage.service.js +9 -0
  47. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +3 -24
  50. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  51. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +0 -12
  52. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +0 -28
  54. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  55. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +18 -0
  56. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/workflow/scheduler.service.js +98 -10
  58. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  59. package/dist/backend/config/constants.d.ts +5 -11
  60. package/dist/backend/config/constants.d.ts.map +1 -1
  61. package/dist/backend/config/constants.js +5 -11
  62. package/dist/backend/config/constants.js.map +1 -1
  63. package/dist/cli/backend/src/constants.d.ts +5 -5
  64. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  65. package/dist/cli/backend/src/constants.js +3 -3
  66. package/dist/cli/backend/src/constants.js.map +1 -1
  67. package/dist/cli/backend/src/services/core/storage.service.d.ts +7 -0
  68. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  69. package/dist/cli/backend/src/services/core/storage.service.js +9 -0
  70. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  71. package/dist/cli/cli/src/index.js +0 -8
  72. package/dist/cli/cli/src/index.js.map +1 -1
  73. package/dist/cli/config/constants.d.ts +5 -11
  74. package/dist/cli/config/constants.d.ts.map +1 -1
  75. package/dist/cli/config/constants.js +5 -11
  76. package/dist/cli/config/constants.js.map +1 -1
  77. package/frontend/dist/assets/{index-e8b8498d.js → index-7357dbef.js} +101 -101
  78. package/frontend/dist/assets/{index-8772d402.css → index-a393888e.css} +1 -1
  79. package/frontend/dist/index.html +2 -2
  80. package/package.json +1 -1
  81. package/config/templates/content-generation-team/norms/brand-guidelines.md +0 -75
  82. package/config/templates/content-generation-team/norms/content-review.md +0 -74
  83. package/config/templates/dev-fullstack/norms/code-commit-sop.md +0 -114
  84. package/config/templates/dev-fullstack/norms/quality-gates.md +0 -62
  85. package/config/templates/research-analysis/norms/research-methodology.md +0 -77
  86. package/config/templates/research-analysis/norms/source-citation.md +0 -85
  87. package/config/templates/social-media-ops/norms/engagement-rules.md +0 -35
  88. package/config/templates/social-media-ops/norms/posting-schedule.md +0 -43
@@ -1,114 +0,0 @@
1
- # Code Commit Standard Operating Procedure
2
-
3
- **Trigger**: before_commit
4
- **Applies to**: developer, team-leader
5
- **Version**: 1.0.0
6
-
7
- ## Overview
8
-
9
- Every code commit to a feature branch must follow this 9-step process with 3 review
10
- rounds. This ensures code quality, consistency, and maintainability. The process is
11
- mandatory for all developers and team leaders on the dev-fullstack team.
12
-
13
- ## Steps
14
-
15
- ### Phase A: Preparation
16
-
17
- 1. **Create Feature Branch**
18
- - Branch from `main` using naming convention: `feat/`, `fix/`, `refactor/`, `chore/`
19
- - One branch = one feature or fix
20
- - Example: `git checkout -b feat/user-auth-flow`
21
-
22
- 2. **Write Unit Tests**
23
- - Place test files next to source files: `service.ts` → `service.test.ts`
24
- - Cover: core business logic, conditionals, data transforms, error paths, edge cases
25
- - Target: 80%+ coverage (100% for critical paths)
26
- - Run: `npx jest --no-coverage` — all must pass
27
-
28
- 3. **Create PR + Review Round 1 (Refactor & Consistency)**
29
- - Open PR from feature branch → main
30
- - Self-review focusing on:
31
-
32
- | Dimension | Check |
33
- |-----------|-------|
34
- | Reusability | Can similar logic be extracted into shared utils? |
35
- | Structure | Is any file too large or mixing responsibilities? |
36
- | Modularity | Are module boundaries clean? Dependencies reasonable? |
37
- | Consistency | Coding patterns consistent? (enums, naming, error handling) |
38
- | Standards | Does code follow CLAUDE.md conventions? |
39
-
40
- - Document findings as "Review Round 1 — Refactor & Consistency"
41
-
42
- ### Phase B: Iterative Refinement
43
-
44
- 4. **Apply Round 1 Changes**
45
- - Refactor only — no new features
46
- - Run tests to confirm passing
47
- - Commit: `refactor: apply review round 1 feedback`
48
-
49
- 5. **Review Round 2 (Efficiency & Reliability)**
50
-
51
- | Dimension | Check |
52
- |-----------|-------|
53
- | Efficiency | Unnecessary computation? Duplicate processing? N+1 queries? |
54
- | Null Safety | Are null/undefined checks sufficient? |
55
- | Error Handling | Errors caught and logged properly? |
56
- | Resource Cleanup | Timers, listeners, connections cleaned up? |
57
- | Logging | Critical operations have adequate logs? |
58
-
59
- - Document as "Review Round 2 — Efficiency & Reliability"
60
-
61
- 6. **Apply Round 2 Changes**
62
- - Implement efficiency and reliability improvements
63
- - Run tests
64
- - Commit: `chore: apply review round 2 feedback`
65
-
66
- 7. **Review Round 3 (Overall Quality)**
67
-
68
- | Dimension | Check |
69
- |-----------|-------|
70
- | Readability | Clear naming? Functions < 40 lines? |
71
- | Dead Code | Unused code, commented blocks, stale TODOs? |
72
- | Formatting | Consistent indentation, spacing, line length? |
73
- | Documentation | JSDoc complete? Complex logic commented? |
74
- | Types | TypeScript strict? No `any` types? |
75
-
76
- - Document as "Review Round 3 — Overall Quality"
77
-
78
- 8. **Apply Round 3 Changes**
79
- - Final polish
80
- - Run tests
81
- - Commit: `chore: apply review round 3 feedback`
82
-
83
- ### Phase C: Finalize
84
-
85
- 9. **Build, Verify, Merge**
86
- - `npm run build` — must pass
87
- - `npm test` — must pass
88
- - Update PR description with 3-round review summary
89
- - Squash merge to main
90
- - Delete feature branch
91
-
92
- ## Checklist
93
-
94
- - [ ] Feature branch created with correct naming convention
95
- - [ ] Unit tests written next to source files (1:1 ratio)
96
- - [ ] All tests passing before PR creation
97
- - [ ] Review Round 1 completed (Refactor & Consistency)
98
- - [ ] Round 1 changes applied and committed
99
- - [ ] Review Round 2 completed (Efficiency & Reliability)
100
- - [ ] Round 2 changes applied and committed
101
- - [ ] Review Round 3 completed (Overall Quality)
102
- - [ ] Round 3 changes applied and committed
103
- - [ ] Build passes (`npm run build`)
104
- - [ ] Full test suite passes (`npm test`)
105
- - [ ] PR description updated with review summaries
106
- - [ ] Squash merged to main
107
-
108
- ## Exceptions
109
-
110
- - **Hotfixes**: Critical production fixes may skip Rounds 2-3 but must still have
111
- Round 1 review and tests. Use `hotfix/` branch prefix.
112
- - **Documentation-only changes**: Pure .md file changes can skip all review rounds.
113
- - **Config/dependency updates**: Can skip Rounds 2-3 if change is mechanical
114
- (e.g., version bump). Still needs Round 1 review.
@@ -1,62 +0,0 @@
1
- # Quality Gates
2
-
3
- **Trigger**: before_deploy
4
- **Applies to**: *
5
- **Version**: 1.0.0
6
-
7
- ## Overview
8
-
9
- Before any code is deployed (to staging or production), all quality gates must pass.
10
- No exceptions. These gates are enforced automatically via the verification pipeline
11
- and manually verified by the team leader.
12
-
13
- ## Steps
14
-
15
- 1. **TypeScript Compilation**
16
- - Run: `npm run build`
17
- - Requirement: Zero errors, zero warnings
18
- - Covers: All components (backend, frontend, CLI, MCP server)
19
-
20
- 2. **Type Checking**
21
- - Run: `npm run typecheck` (or `npx tsc --noEmit`)
22
- - Requirement: No type errors in any source file
23
- - Strict mode must be enabled
24
-
25
- 3. **Unit Tests**
26
- - Run: `npm test`
27
- - Requirement: 100% pass rate
28
- - Minimum 80% code coverage for new code
29
-
30
- 4. **Linting**
31
- - Run: `npm run lint`
32
- - Requirement: No errors (warnings acceptable with justification)
33
-
34
- 5. **Integration Verification**
35
- - Backend health: `curl http://localhost:3000/health` returns 200
36
- - MCP server health: `curl http://localhost:3001/health` returns 200
37
- - CLI smoke test: `npx crewly start --no-browser` starts without errors
38
-
39
- 6. **Code Quality**
40
- - No `console.log` in production code
41
- - No commented-out code blocks
42
- - No TODO comments without linked GitHub issues
43
- - All functions have JSDoc documentation
44
-
45
- ## Checklist
46
-
47
- - [ ] `npm run build` — zero errors
48
- - [ ] `npm run typecheck` — zero type errors
49
- - [ ] `npm test` — 100% pass rate
50
- - [ ] `npm run lint` — no errors
51
- - [ ] Backend health check passes
52
- - [ ] MCP server health check passes
53
- - [ ] No console.log in production code
54
- - [ ] No commented-out code
55
- - [ ] All new functions have JSDoc
56
-
57
- ## Exceptions
58
-
59
- - **Staging-only deploys** for testing may proceed with lint warnings if time-critical,
60
- but must be cleaned up before production deploy.
61
- - **Emergency hotfixes** must still pass Steps 1-4 (build, typecheck, tests, lint).
62
- Steps 5-6 can be verified post-deploy.
@@ -1,77 +0,0 @@
1
- # Research Methodology Standards
2
-
3
- **Trigger**: always
4
- **Applies to**: *
5
- **Version**: 1.0.0
6
-
7
- ## Overview
8
-
9
- All research output from this team must follow rigorous methodology standards.
10
- These norms are always active — they govern how we collect, analyze, and present
11
- information. Adherence to these standards is what distinguishes our analysis from
12
- generic content.
13
-
14
- ## Research Framework
15
-
16
- ### Phase 1: Scope Definition
17
- - Define the research question precisely (what, why, for whom)
18
- - Set clear boundaries (time period, geography, industry scope)
19
- - Identify key metrics and success criteria
20
- - Document assumptions and known biases upfront
21
-
22
- ### Phase 2: Data Collection
23
- - **Primary sources first**: Official documentation, changelogs, GitHub repos,
24
- API docs, SEC filings, press releases
25
- - **Secondary sources**: Reputable tech publications (minimum 2 independent sources
26
- for any claim), analyst reports, conference talks
27
- - **Tertiary sources**: Social media, forums, blog posts (corroborate with primary
28
- or secondary before citing)
29
- - **Never cite**: Anonymous Reddit posts, unverified tweets, or AI-generated
30
- summaries as primary evidence
31
-
32
- ### Phase 3: Analysis
33
- - **Quantitative**: Use specific numbers, percentages, and dates — not vague qualifiers
34
- - **Comparative**: Always benchmark against at least 2 competitors or alternatives
35
- - **Temporal**: Note when data was collected; flag anything older than 3 months
36
- - **Contradictory evidence**: Actively seek and document contradicting data points.
37
- Acknowledge limitations rather than ignoring inconvenient evidence
38
-
39
- ### Phase 4: Synthesis
40
- - Lead with conclusions, then support with evidence (inverted pyramid)
41
- - Separate facts from opinions — clearly label recommendations
42
- - Provide confidence levels: High (3+ independent sources), Medium (2 sources),
43
- Low (single source or inference)
44
- - Include "So what?" — every finding must connect to an actionable recommendation
45
-
46
- ## Quality Standards
47
-
48
- | Standard | Requirement |
49
- |----------|-------------|
50
- | Source minimum | 3+ independent sources per major claim |
51
- | Recency | Data from within last 6 months (flag older data) |
52
- | Cross-reference | Every quantitative claim verified by 2+ sources |
53
- | Contradictions | Must be acknowledged and discussed |
54
- | Confidence labeling | High/Medium/Low for each major finding |
55
- | Actionability | Every section ends with recommendation(s) |
56
-
57
- ## Checklist
58
-
59
- - [ ] Research question clearly defined
60
- - [ ] Scope and boundaries documented
61
- - [ ] Assumptions and biases acknowledged
62
- - [ ] 3+ independent sources for major claims
63
- - [ ] Primary sources prioritized
64
- - [ ] All data within 6 months (older data flagged)
65
- - [ ] Quantitative claims cross-referenced
66
- - [ ] Contradictory evidence addressed
67
- - [ ] Confidence levels assigned
68
- - [ ] Findings connected to actionable recommendations
69
- - [ ] Analysis distinguishes facts from opinions
70
-
71
- ## Exceptions
72
-
73
- - **Rapid-response analysis** (e.g., breaking security incident): May proceed
74
- with fewer sources but must be clearly labeled "Preliminary Analysis" and
75
- updated within 48 hours with full sourcing.
76
- - **Internal brainstorming documents**: May relax sourcing requirements but
77
- must still distinguish speculation from fact.
@@ -1,85 +0,0 @@
1
- # Source Citation Standards
2
-
3
- **Trigger**: always
4
- **Applies to**: *
5
- **Version**: 1.0.0
6
-
7
- ## Overview
8
-
9
- Proper citation is non-negotiable for research integrity. Every factual claim,
10
- statistic, and direct quote must be attributed to its source using the format
11
- below. These standards apply to all research output — reports, briefings,
12
- competitive analyses, and strategy documents.
13
-
14
- ## Citation Format
15
-
16
- ### Inline Citations
17
- Use numbered references in square brackets within the text:
18
-
19
- ```
20
- Crewly's PTY isolation model prevents lateral movement between agents [1],
21
- unlike OpenClaw's shared-process architecture which exposed 135,000+ instances
22
- to the ClawHavoc attack [2][3].
23
- ```
24
-
25
- ### Reference List
26
- At the end of every document, include a numbered reference list:
27
-
28
- ```
29
- ## References
30
-
31
- [1] Crewly Architecture Docs, "PTY Isolation Model", v1.3.34, March 2026.
32
- Source: specs/project.md (Primary — project documentation)
33
-
34
- [2] SecurityWeek, "OpenClaw Vulnerability Exposes Thousands of AI Agents",
35
- March 5, 2026. URL: [link] (Secondary — tech publication)
36
-
37
- [3] CVE-2026-0104, NIST National Vulnerability Database.
38
- URL: [link] (Primary — official vulnerability record)
39
- ```
40
-
41
- ### Citation Components
42
- Each reference must include:
43
- 1. **Author/Organization** — Who published it
44
- 2. **Title** — What was published
45
- 3. **Date** — When (month + year minimum)
46
- 4. **Source type** — Primary, Secondary, or Tertiary
47
- 5. **URL or location** — Where to verify
48
-
49
- ## Source Credibility Tiers
50
-
51
- | Tier | Source Type | Reliability | Use For |
52
- |------|-----------|-------------|---------|
53
- | **Tier 1 (Primary)** | Official docs, GitHub repos, CVE records, SEC filings, press releases | Highest | Core claims, architecture facts, vulnerability data |
54
- | **Tier 2 (Secondary)** | Major tech publications (Ars Technica, SecurityWeek, The Verge), analyst reports, peer-reviewed papers | High | Market data, trend analysis, expert opinions |
55
- | **Tier 3 (Tertiary)** | Blog posts, conference talks, podcast transcripts, social media from verified accounts | Medium | Supporting evidence, community sentiment, anecdotes |
56
- | **Tier 4 (Unreliable)** | Anonymous posts, unverified social media, AI-generated content, SEO spam sites | Do Not Use | Never cite as evidence |
57
-
58
- ## Verification Process
59
-
60
- 1. **Can you access the source directly?** If not, find an accessible alternative
61
- 2. **Is the source independent?** Avoid circular citations (A cites B cites A)
62
- 3. **Is the date current?** Flag sources older than 6 months
63
- 4. **Does the claim match the source?** Re-read the actual text — don't paraphrase beyond what it says
64
- 5. **Is there a counter-source?** Seek at least one opposing viewpoint for controversial claims
65
-
66
- ## Checklist
67
-
68
- - [ ] Every factual claim has an inline citation [N]
69
- - [ ] Reference list included at document end
70
- - [ ] Each reference has: author, title, date, source type, URL
71
- - [ ] No Tier 4 sources used as evidence
72
- - [ ] All URLs/locations are accessible and correct
73
- - [ ] No circular citations
74
- - [ ] Sources older than 6 months are flagged
75
- - [ ] Claims accurately reflect source content
76
- - [ ] Counter-sources acknowledged for controversial claims
77
-
78
- ## Exceptions
79
-
80
- - **Common knowledge** (e.g., "TypeScript is a superset of JavaScript") does not
81
- need citation.
82
- - **Internal team decisions** cited by meeting date and participants do not need
83
- external verification.
84
- - **Preliminary analysis** may use fewer citations but must be clearly labeled
85
- and updated within 48 hours.
@@ -1,35 +0,0 @@
1
- # Engagement Rules
2
-
3
- **Trigger**: always
4
- **Applies to**: *
5
- **Version**: 1.0.0
6
-
7
- ## Overview
8
-
9
- Rules for interacting with community members, handling feedback, and managing brand reputation across social platforms.
10
-
11
- ## Steps
12
-
13
- 1. **Respond within SLA** — Acknowledge all direct mentions, DMs, and comments within 4 hours during business hours. Mark as seen even if a full response requires research.
14
- 2. **Match tone to platform** — Twitter: concise and casual. LinkedIn: professional. Reddit: authentic and technical. Adjust formality accordingly.
15
- 3. **Be helpful, not promotional** — Prioritize providing value. Answer questions directly. Share resources. Only mention the product when genuinely relevant to the question.
16
- 4. **Handle criticism constructively** — Thank the person for feedback. Acknowledge valid points. Offer to take the conversation to DM for detailed issues. Never argue publicly.
17
- 5. **Escalate sensitive issues** — If a post involves legal claims, security vulnerabilities, or potential PR crisis, escalate to team lead immediately before responding.
18
- 6. **Credit community contributions** — When sharing community content, always credit the original creator. Ask permission before reposting.
19
- 7. **Log interactions** — Record notable feedback, feature requests, and bug reports for the product team.
20
-
21
- ## Checklist
22
-
23
- - [ ] Response is within 4-hour SLA
24
- - [ ] Tone matches the platform norms
25
- - [ ] Response provides value (not just promotional)
26
- - [ ] Negative feedback handled without defensiveness
27
- - [ ] Sensitive topics escalated before public response
28
- - [ ] Community creators credited when their content is shared
29
- - [ ] Notable feedback logged for product team review
30
-
31
- ## Exceptions
32
-
33
- - **Spam or bot accounts** — Do not engage. Block/report as appropriate.
34
- - **Abusive messages** — Do not respond. Screenshot for records and block if needed.
35
- - **After-hours mentions** — Respond next business day. Automated acknowledgment is acceptable.
@@ -1,43 +0,0 @@
1
- # Posting Schedule
2
-
3
- **Trigger**: always
4
- **Applies to**: *
5
- **Version**: 1.0.0
6
-
7
- ## Overview
8
-
9
- Guidelines for content publishing frequency, timing, and platform-specific rules. Ensures consistent presence without audience fatigue.
10
-
11
- ## Steps
12
-
13
- 1. **Check content calendar** — Before creating content, review the current week's posting schedule to avoid duplicate topics or over-posting.
14
- 2. **Select optimal posting time** — Use platform-specific peak engagement windows (see table below).
15
- 3. **Respect cooldown periods** — Maintain minimum intervals between posts on the same platform.
16
- 4. **Adapt to time zones** — Target primary audience time zones. Default: US Pacific (PT) for tech audiences.
17
- 5. **Queue, don't rush** — If content is ready outside posting windows, queue it for the next optimal slot rather than posting immediately.
18
- 6. **Track post performance** — After posting, monitor engagement for 24 hours and note patterns for future optimization.
19
-
20
- ### Platform Timing Guidelines
21
-
22
- | Platform | Posts/Week | Best Times (PT) | Cooldown |
23
- |----------|-----------|-----------------|----------|
24
- | Twitter/X | 5-7 | 9-11 AM, 1-3 PM | 3 hours |
25
- | LinkedIn | 2-3 | Tue-Thu 8-10 AM | 24 hours |
26
- | Reddit | 1-2 | Mon/Wed 10 AM-12 PM | 48 hours |
27
- | Blog | 1 | Tuesday 10 AM | 7 days |
28
- | Product Hunt | As needed | Tuesday 12:01 AM PT | N/A |
29
-
30
- ## Checklist
31
-
32
- - [ ] Content calendar reviewed before posting
33
- - [ ] Posting time falls within platform's peak window
34
- - [ ] Cooldown period respected since last post on same platform
35
- - [ ] Content adapted for target platform format and tone
36
- - [ ] No more than 2 posts per platform per day
37
- - [ ] Hashtags/tags relevant and not excessive (max 5 per post)
38
-
39
- ## Exceptions
40
-
41
- - **Breaking news or announcements** may be posted outside normal windows.
42
- - **Community responses** (replies, comments) are exempt from cooldown rules.
43
- - **Event-driven content** (product launches, conference live-tweets) follows event timing.