mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-23 06:58:12 +02:00
Compare commits
272
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fcbc6b706f | ||
|
|
3af7f9418b | ||
|
|
94e961d0f1 | ||
|
|
25bf0981bd | ||
|
|
d7f002a64f | ||
|
|
55e502aa8d | ||
|
|
ac8b494f24 | ||
|
|
c69fe4e462 | ||
|
|
0570088722 | ||
|
|
3e00a3ca67 | ||
|
|
d0f63c68e4 | ||
|
|
b95cd23ebc | ||
|
|
2188fa458d | ||
|
|
75e1d88c26 | ||
|
|
8155b30c63 | ||
|
|
de7fc7d03c | ||
|
|
517c786be6 | ||
|
|
09b4e597ae | ||
|
|
b00d88f6b0 | ||
|
|
c008b41eb7 | ||
|
|
07fd43a5ed | ||
|
|
89bc1bf88b | ||
|
|
50a011ce23 | ||
|
|
46c31a1447 | ||
|
|
e2002cf163 | ||
|
|
a146705d15 | ||
|
|
2ffa30133d | ||
|
|
a9cda4ffd4 | ||
|
|
6ff8f6b283 | ||
|
|
64fe3810b5 | ||
|
|
a2c2753b0b | ||
|
|
72b13b3e42 | ||
|
|
59bc56aedc | ||
|
|
8736e4f6a0 | ||
|
|
797e12dde5 | ||
|
|
0209c3eacf | ||
|
|
cf20b0a264 | ||
|
|
211b7dc272 | ||
|
|
35cf21209f | ||
|
|
b7ef4940f7 | ||
|
|
9932561050 | ||
|
|
391acfdb83 | ||
|
|
9e6fe9fe31 | ||
|
|
d763be6322 | ||
|
|
37aba33425 | ||
|
|
9ce735dc23 | ||
|
|
9913c307ed | ||
|
|
73e3a9d30f | ||
|
|
f56a89e61c | ||
|
|
3122e162cc | ||
|
|
0eca57efab | ||
|
|
e82d73c4e1 | ||
|
|
2a93c2aea7 | ||
|
|
8f13d3021e | ||
|
|
47ed1711dd | ||
|
|
b8dc93eb2d | ||
|
|
5d7ab93bf8 | ||
|
|
487a8ee352 | ||
|
|
56210687a2 | ||
|
|
e1a6d1e06c | ||
|
|
3d51fdc90b | ||
|
|
0c525665d8 | ||
|
|
1957445225 | ||
|
|
59caa19fbe | ||
|
|
0f49218f62 | ||
|
|
b1c9ffccbb | ||
|
|
a40a5a500e | ||
|
|
9681c62ae8 | ||
|
|
a638cfba6a | ||
|
|
abaee384bf | ||
|
|
281597e944 | ||
|
|
545dfec17f | ||
|
|
695d219724 | ||
|
|
be46d43dd6 | ||
|
|
b353fb6ded | ||
|
|
8f7f580b2f | ||
|
|
2744b538e3 | ||
|
|
7733acbc22 | ||
|
|
ba94e7cc7d | ||
|
|
841ffb306c | ||
|
|
e39fa1026d | ||
|
|
b0e11cb8ab | ||
|
|
ff5e02e30d | ||
|
|
36fe05c04b | ||
|
|
4072f8954f | ||
|
|
32c308c2af | ||
|
|
9145bc5941 | ||
|
|
57c18e24df | ||
|
|
eba9c9da5e | ||
|
|
aa01c7a7fd | ||
|
|
abfb958340 | ||
|
|
24a1d39e88 | ||
|
|
4f69a2edda | ||
|
|
fa4e6e3131 | ||
|
|
468e65091f | ||
|
|
d97c0ed73a | ||
|
|
297af0ab0d | ||
|
|
b15ba68b78 | ||
|
|
e472e05a3b | ||
|
|
d98d43cd06 | ||
|
|
1a7cbe6af9 | ||
|
|
526e608077 | ||
|
|
e41c43c1da | ||
|
|
177f4db455 | ||
|
|
af082eaf2f | ||
|
|
eff432b585 | ||
|
|
e6a1fdc9da | ||
|
|
3a5acd425c | ||
|
|
ae0048a6e1 | ||
|
|
5a67ed2e83 | ||
|
|
a01194cc79 | ||
|
|
60c830c88b | ||
|
|
f6376cb470 | ||
|
|
82befb2264 | ||
|
|
7c88527501 | ||
|
|
5a8c548a62 | ||
|
|
64969b17b5 | ||
|
|
0fd7812b05 | ||
|
|
108f020dc5 | ||
|
|
c3356c2140 | ||
|
|
101e27a2fd | ||
|
|
b413c1ca41 | ||
|
|
9d29e7784a | ||
|
|
4fcc8cf53c | ||
|
|
cb42558e52 | ||
|
|
b4e48a1f0e | ||
|
|
ccfa2dd354 | ||
|
|
4e189e7797 | ||
|
|
84d2012929 | ||
|
|
a71c5a278f | ||
|
|
6d16dc9d41 | ||
|
|
40a057e924 | ||
|
|
7e5c73cad9 | ||
|
|
94429e86df | ||
|
|
04373d2881 | ||
|
|
b31a45549a | ||
|
|
451f0a441b | ||
|
|
9e9eb7d1bb | ||
|
|
0e9622b5eb | ||
|
|
d89de20df2 | ||
|
|
08f82d4080 | ||
|
|
dbddf3a74e | ||
|
|
cb0ff8a0ea | ||
|
|
3859170d35 | ||
|
|
8b13748f13 | ||
|
|
a460255b93 | ||
|
|
330c42c6ff | ||
|
|
942e33df62 | ||
|
|
71b47a9b7c | ||
|
|
e1c6b51e0a | ||
|
|
11b5ef0ad2 | ||
|
|
cdabf13e94 | ||
|
|
2b45b70fa4 | ||
|
|
f1b3628ac0 | ||
|
|
11fac558c3 | ||
|
|
4b5ab1ca16 | ||
|
|
a35b9e3d1c | ||
|
|
58f513d476 | ||
|
|
d4192ce209 | ||
|
|
8b62be83a0 | ||
|
|
a401aee213 | ||
|
|
2129b3055a | ||
|
|
62562d37f1 | ||
|
|
1f7d0d1675 | ||
|
|
838d168239 | ||
|
|
5c33d7fac0 | ||
|
|
70f348553f | ||
|
|
214ff257a2 | ||
|
|
8bc7109392 | ||
|
|
817bd2a980 | ||
|
|
eee6e65c94 | ||
|
|
15397974e0 | ||
|
|
d7377914e7 | ||
|
|
c9f7f7e9ec | ||
|
|
d62ecffaac | ||
|
|
456139cf2d | ||
|
|
c8943accb8 | ||
|
|
4cc416af1b | ||
|
|
a39ed12d1f | ||
|
|
b33c9a30be | ||
|
|
3d15a2e1f6 | ||
|
|
80a13d02ae | ||
|
|
16435d499a | ||
|
|
c6bb589b09 | ||
|
|
d752437138 | ||
|
|
f2fef87ae9 | ||
|
|
4d9ad3f239 | ||
|
|
6334b49676 | ||
|
|
e25d2026df | ||
|
|
faec0a17b1 | ||
|
|
8840520bda | ||
|
|
248ec6b398 | ||
|
|
d3da988cc0 | ||
|
|
4954877c06 | ||
|
|
027b0f7e73 | ||
|
|
230a30b339 | ||
|
|
7223bbbfb2 | ||
|
|
f95f400202 | ||
|
|
06b635561d | ||
|
|
891b374500 | ||
|
|
427c0b290e | ||
|
|
437661e2a6 | ||
|
|
19aa3d5b97 | ||
|
|
8b1f114383 | ||
|
|
8f5c3d0744 | ||
|
|
aac776777a | ||
|
|
4e20a84836 | ||
|
|
9ff1c4aa18 | ||
|
|
8295916915 | ||
|
|
2a357a0d69 | ||
|
|
783d8ffccb | ||
|
|
fe638b9895 | ||
|
|
3ce30e71f0 | ||
|
|
e9ff262991 | ||
|
|
be940cd54c | ||
|
|
5e50399457 | ||
|
|
e33f721360 | ||
|
|
c9b7493c9c | ||
|
|
986f9741c1 | ||
|
|
07ac80057e | ||
|
|
07b3d1a62a | ||
|
|
901c8581f6 | ||
|
|
ff9453a3e4 | ||
|
|
b4347d068d | ||
|
|
6add333ce6 | ||
|
|
8be0b467be | ||
|
|
074de54c8b | ||
|
|
77a6dd7188 | ||
|
|
81baafd295 | ||
|
|
95b1cf2187 | ||
|
|
2911d132d4 | ||
|
|
23abe41903 | ||
|
|
a512084f1b | ||
|
|
8434e7a5a4 | ||
|
|
dc60a12cd3 | ||
|
|
951606076e | ||
|
|
19d0c333ac | ||
|
|
9ffd92f6bf | ||
|
|
44928c61b8 | ||
|
|
ba81447d10 | ||
|
|
366fa2f15f | ||
|
|
1050f351c2 | ||
|
|
430187cbad | ||
|
|
e29048d374 | ||
|
|
8fde238369 | ||
|
|
f2cdd0a71c | ||
|
|
973bf5186c | ||
|
|
c6ecb195ef | ||
|
|
4903aa5555 | ||
|
|
c2c2fef62f | ||
|
|
3d494d4056 | ||
|
|
7b39b34afb | ||
|
|
c37a56b366 | ||
|
|
566782fa82 | ||
|
|
ad22aea55e | ||
|
|
1f76a72100 | ||
|
|
1bdbbfaa88 | ||
|
|
54033ed6ed | ||
|
|
8c911f0fb1 | ||
|
|
f8db96084b | ||
|
|
4c06e5951d | ||
|
|
60e89cb2bf | ||
|
|
e7e9a2fb1b | ||
|
|
f8ddb44e38 | ||
|
|
b38f082d6e | ||
|
|
4f8bab176a | ||
|
|
4b779838b3 | ||
|
|
509e36a05e | ||
|
|
6c299b954a | ||
|
|
55c2bfdeb7 | ||
|
|
633875e8ec | ||
|
|
c3660f811b |
No files matched your search
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'bmad-master'
|
||||
description: 'bmad-master agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/core/agents/bmad-master.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'agent-builder'
|
||||
description: 'agent-builder agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmb/agents/agent-builder.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'module-builder'
|
||||
description: 'module-builder agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmb/agents/module-builder.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'workflow-builder'
|
||||
description: 'workflow-builder agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmb/agents/workflow-builder.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'analyst'
|
||||
description: 'analyst agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/analyst.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'architect'
|
||||
description: 'architect agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/architect.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'dev'
|
||||
description: 'dev agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/dev.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'pm'
|
||||
description: 'pm agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/pm.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'qa'
|
||||
description: 'qa agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/qa.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'quick-flow-solo-dev'
|
||||
description: 'quick-flow-solo-dev agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/quick-flow-solo-dev.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'sm'
|
||||
description: 'sm agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/sm.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'tech-writer'
|
||||
description: 'tech-writer agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/tech-writer/tech-writer.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'ux-designer'
|
||||
description: 'ux-designer agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/ux-designer.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'brainstorming-coach'
|
||||
description: 'brainstorming-coach agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/cis/agents/brainstorming-coach.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'creative-problem-solver'
|
||||
description: 'creative-problem-solver agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/cis/agents/creative-problem-solver.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'design-thinking-coach'
|
||||
description: 'design-thinking-coach agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/cis/agents/design-thinking-coach.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'innovation-strategist'
|
||||
description: 'innovation-strategist agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/cis/agents/innovation-strategist.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'presentation-master'
|
||||
description: 'presentation-master agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/cis/agents/presentation-master.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 'storyteller'
|
||||
description: 'storyteller agent'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
||||
|
||||
<agent-activation CRITICAL="TRUE">
|
||||
1. LOAD the FULL agent file from {project-root}/_bmad/cis/agents/storyteller/storyteller.md
|
||||
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
||||
3. FOLLOW every step in the <activation> section precisely
|
||||
4. DISPLAY the welcome/greeting as instructed
|
||||
5. PRESENT the numbered menu
|
||||
6. WAIT for user input before proceeding
|
||||
</agent-activation>
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'create-agent'
|
||||
description: 'Create a new BMAD agent with best practices and compliance'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/agent/workflow-create-agent.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'create-module-brief'
|
||||
description: 'Create product brief for BMAD module development'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/module/workflow-create-module-brief.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'create-module'
|
||||
description: 'Create a complete BMAD module with agents, workflows, and infrastructure'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/module/workflow-create-module.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'create-workflow'
|
||||
description: 'Create a new BMAD workflow with proper structure and best practices'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/workflow/workflow-create-workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'edit-agent'
|
||||
description: 'Edit existing BMAD agents while maintaining compliance'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/agent/workflow-edit-agent.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'edit-module'
|
||||
description: 'Edit existing BMAD modules while maintaining coherence'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/module/workflow-edit-module.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'edit-workflow'
|
||||
description: 'Edit existing BMAD workflows while maintaining integrity'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/workflow/workflow-edit-workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'rework-workflow'
|
||||
description: 'Rework a Workflow to a V6 Compliant Version'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/workflow/workflow-rework-workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'validate-agent'
|
||||
description: 'Validate existing BMAD agents and offer to improve deficiencies'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/agent/workflow-validate-agent.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'validate-max-parallel-workflow'
|
||||
description: 'Run validation checks in MAX-PARALLEL mode against a workflow requires a tool that supports Parallel Sub-Processes'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/workflow/workflow-validate-max-parallel-workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'validate-module'
|
||||
description: 'Run compliance check on BMAD modules against best practices'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/module/workflow-validate-module.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'validate-workflow'
|
||||
description: 'Run validation check on BMAD workflows against best practices'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmb/workflows/workflow/workflow-validate-workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'check-implementation-readiness'
|
||||
description: 'Critical validation workflow that assesses PRD, Architecture, and Epics & Stories for completeness and alignment before implementation. Uses adversarial review approach to find gaps and issues.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'code-review'
|
||||
description: 'Perform an ADVERSARIAL Senior Developer code review that finds 3-10 specific problems in every story. Challenges everything: code quality, test coverage, architecture compliance, security, performance. NEVER accepts `looks good` - must find minimum issues and can auto-fix with user approval.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'correct-course'
|
||||
description: 'Navigate significant changes during sprint execution by analyzing impact, proposing solutions, and routing for implementation'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'create-architecture'
|
||||
description: 'Collaborative architectural decision facilitation for AI-agent consistency. Replaces template-driven architecture with intelligent, adaptive conversation that produces a decision-focused architecture document optimized for preventing agent conflicts.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'create-epics-and-stories'
|
||||
description: 'Transform PRD requirements and Architecture decisions into comprehensive stories organized by user value. This workflow requires completed PRD + Architecture documents (UX recommended if UI exists) and breaks down requirements into implementation-ready epics and user stories that incorporate all available technical and design context. Creates detailed, actionable stories with complete acceptance criteria for development teams.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'create-prd'
|
||||
description: 'Create a comprehensive PRD (Product Requirements Document) through structured workflow facilitation'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'create-product-brief'
|
||||
description: 'Create comprehensive product briefs through collaborative step-by-step discovery as creative Business Analyst working with the user as peers.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'create-story'
|
||||
description: 'Create the next user story from epics+stories with enhanced context analysis and direct ready-for-dev marking'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'create-ux-design'
|
||||
description: 'Work with a peer UX Design expert to plan your applications UX patterns, look and feel.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'dev-story'
|
||||
description: 'Execute a story by implementing tasks/subtasks, writing tests, validating, and updating the story file per acceptance criteria'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'document-project'
|
||||
description: 'Analyzes and documents brownfield projects by scanning codebase, architecture, and patterns to create comprehensive reference documentation for AI-assisted development'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'domain-research'
|
||||
description: 'Conduct domain research covering industry analysis, regulations, technology trends, and ecosystem dynamics using current web data and verified sources.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'edit-prd'
|
||||
description: 'Edit and improve an existing PRD - enhance clarity, completeness, and quality'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'generate-project-context'
|
||||
description: 'Creates a concise project-context.md file with critical rules and patterns that AI agents must follow when implementing code. Optimized for LLM context efficiency.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/generate-project-context/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'market-research'
|
||||
description: 'Conduct market research covering market size, growth, competition, and customer insights using current web data and verified sources.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'qa-automate'
|
||||
description: 'Generate tests quickly for existing features using standard test patterns'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/qa/automate/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/qa/automate/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'quick-dev'
|
||||
description: 'Flexible development - execute tech-specs OR direct instructions with optional planning.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'quick-spec'
|
||||
description: 'Conversational spec engineering - ask questions, investigate code, produce implementation-ready tech-spec.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'retrospective'
|
||||
description: 'Run after epic completion to review overall success, extract lessons learned, and explore if new information emerged that might impact the next epic'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'sprint-planning'
|
||||
description: 'Generate and manage the sprint status tracking file for Phase 4 implementation, extracting all epics and stories from epic files and tracking their status through the development lifecycle'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'sprint-status'
|
||||
description: 'Summarize sprint-status.yaml, surface risks, and route to the right implementation workflow.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'technical-research'
|
||||
description: 'Conduct technical research covering technology evaluation, architecture decisions, and implementation approaches using current web data and verified sources.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'validate-prd'
|
||||
description: 'Validate an existing PRD against BMAD standards - comprehensive review for completeness, clarity, and quality'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'brainstorming'
|
||||
description: 'Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/core/workflows/brainstorming/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'design-thinking'
|
||||
description: 'Guide human-centered design processes using empathy-driven methodologies. This workflow walks through the design thinking phases - Empathize, Define, Ideate, Prototype, and Test - to create solutions deeply rooted in user needs.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/cis/workflows/design-thinking/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/cis/workflows/design-thinking/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'innovation-strategy'
|
||||
description: 'Identify disruption opportunities and architect business model innovation. This workflow guides strategic analysis of markets, competitive dynamics, and business model innovation to uncover sustainable competitive advantages and breakthrough opportunities.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/cis/workflows/innovation-strategy/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/cis/workflows/innovation-strategy/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'problem-solving'
|
||||
description: 'Apply systematic problem-solving methodologies to crack complex challenges. This workflow guides through problem diagnosis, root cause analysis, creative solution generation, evaluation, and implementation planning using proven frameworks.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/cis/workflows/problem-solving/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/cis/workflows/problem-solving/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 'storytelling'
|
||||
description: 'Craft compelling narratives using proven story frameworks and techniques. This workflow guides users through structured narrative development, applying appropriate story frameworks to create emotionally resonant and engaging stories for any purpose.'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
||||
|
||||
<steps CRITICAL="TRUE">
|
||||
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
|
||||
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/cis/workflows/storytelling/workflow.yaml
|
||||
3. Pass the yaml path @{project-root}/_bmad/cis/workflows/storytelling/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
||||
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
||||
5. Save outputs after EACH section when generating any documents from templates
|
||||
</steps>
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: 'editorial-review-prose'
|
||||
description: 'Clinical copy-editor that reviews text for communication issues'
|
||||
---
|
||||
|
||||
# editorial-review-prose
|
||||
|
||||
Read the entire task file at: {project-root}/_bmad/core/tasks/editorial-review-prose.xml
|
||||
|
||||
Follow all instructions in the task file exactly as written.
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: 'editorial-review-structure'
|
||||
description: 'Structural editor that proposes cuts, reorganization, and simplification while preserving comprehension'
|
||||
---
|
||||
|
||||
# editorial-review-structure
|
||||
|
||||
Read the entire task file at: {project-root}/_bmad/core/tasks/editorial-review-structure.xml
|
||||
|
||||
Follow all instructions in the task file exactly as written.
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: 'help'
|
||||
description: 'Get unstuck by showing what workflow steps come next or answering questions about what to do'
|
||||
---
|
||||
|
||||
# help
|
||||
|
||||
Read the entire task file at: {project-root}/_bmad/core/tasks/help.md
|
||||
|
||||
Follow all instructions in the task file exactly as written.
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: 'index-docs'
|
||||
description: 'Generates or updates an index.md of all documents in the specified directory'
|
||||
---
|
||||
|
||||
# index-docs
|
||||
|
||||
Read the entire task file at: {project-root}/_bmad/core/tasks/index-docs.xml
|
||||
|
||||
Follow all instructions in the task file exactly as written.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: 'party-mode'
|
||||
description: 'Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations'
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/core/workflows/party-mode/workflow.md, READ its entire contents and follow its directions exactly!
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: 'review-adversarial-general'
|
||||
description: 'Cynically review content and produce findings'
|
||||
---
|
||||
|
||||
# review-adversarial-general
|
||||
|
||||
Read the entire task file at: {project-root}/_bmad/core/tasks/review-adversarial-general.xml
|
||||
|
||||
Follow all instructions in the task file exactly as written.
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: 'shard-doc'
|
||||
description: 'Splits large markdown documents into smaller, organized files based on level 2 (default) sections'
|
||||
---
|
||||
|
||||
# shard-doc
|
||||
|
||||
Read the entire task file at: {project-root}/_bmad/core/tasks/shard-doc.xml
|
||||
|
||||
Follow all instructions in the task file exactly as written.
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
description: 'Generates or updates an index.md of all documents in the specified directory'
|
||||
---
|
||||
|
||||
# Index Docs
|
||||
|
||||
LOAD and execute the task at: _bmad/core/tasks/index-docs.xml
|
||||
|
||||
Follow all instructions in the task file exactly as written.
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(git push:*)"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"WebFetch(domain:pixabay.com)",
|
||||
"Bash(find /c/GIT/Socialflow/migrations -name \"*.sql\" -exec wc -l {} +)",
|
||||
"Bash(xargs ls:*)"
|
||||
]
|
||||
}
|
||||
}
|
||||
+79
-1
@@ -11,19 +11,97 @@ DATABASE_URL=postgresql://socialflow:changeme@postgres:4523/socialflow
|
||||
# Configuration de l'application
|
||||
PORT=5555
|
||||
NODE_ENV=production
|
||||
# URL publique de l'application, telle que vue par le navigateur.
|
||||
# En production, mettez le vrai domaine (ex. https://socialflow.exemple.fr) :
|
||||
# les URI de redirection OAuth (Facebook/TikTok) en découlent.
|
||||
# Laissée vide derrière un reverse proxy, elle est déduite des en-têtes
|
||||
# X-Forwarded-Proto / X-Forwarded-Host.
|
||||
APP_URL=http://localhost:5555
|
||||
|
||||
# Clé secrète pour les sessions (CHANGEZ CETTE VALEUR)
|
||||
SESSION_SECRET=your-secret-key-change-me-to-random-string
|
||||
|
||||
# Clé de chiffrement pour les tokens Facebook/Instagram (OBLIGATOIRE en production)
|
||||
# Générer avec: openssl rand -hex 32
|
||||
ENCRYPTION_KEY=your-32-byte-hex-key-here
|
||||
|
||||
# Clé API OpenRouter pour la génération de texte IA
|
||||
# Obtenez votre clé sur https://openrouter.ai/
|
||||
OPENROUTER_API_KEY=your-openrouter-api-key-here
|
||||
|
||||
# Optionnel: Configuration Facebook API
|
||||
# Configuration MinIO (stockage des médias, remplace Cloudinary)
|
||||
# MINIO_ENDPOINT = URL interne Docker (ex: http://minio:9000)
|
||||
# MINIO_PUBLIC_URL = URL publique pour accéder aux fichiers (ex: https://media.example.com)
|
||||
MINIO_ENDPOINT=http://minio:9000
|
||||
MINIO_PUBLIC_URL=https://media.example.com
|
||||
|
||||
# ==========================================
|
||||
# FACEBOOK (connexion des pages et renouvellement des jetons)
|
||||
# ==========================================
|
||||
# Identifiants de votre application sur https://developers.facebook.com
|
||||
# Ils peuvent aussi être saisis dans l'application (Paramètres → Facebook),
|
||||
# ce qui est prioritaire sur ces variables.
|
||||
# Sans eux, les jetons de page doivent être collés et remplacés à la main.
|
||||
# FACEBOOK_APP_ID=
|
||||
# FACEBOOK_APP_SECRET=
|
||||
#
|
||||
# URI de redirection OAuth à déclarer chez Facebook.
|
||||
# Par défaut : ${APP_URL}/api/facebook/callback, ou le domaine vu par le
|
||||
# reverse proxy quand APP_URL n'est pas défini.
|
||||
# FACEBOOK_REDIRECT_URI=
|
||||
#
|
||||
# Permissions demandées à l'autorisation. Défaut : pages_show_list,
|
||||
# pages_manage_posts, pages_read_engagement, pages_manage_engagement,
|
||||
# read_insights, business_management, instagram_basic, instagram_content_publish
|
||||
# FACEBOOK_SCOPES=
|
||||
#
|
||||
# Version de la Graph API utilisée pour l'OAuth (défaut : v19.0).
|
||||
# FACEBOOK_GRAPH_VERSION=
|
||||
|
||||
# Optionnel: Configuration Instagram API
|
||||
# INSTAGRAM_APP_ID=
|
||||
# INSTAGRAM_APP_SECRET=
|
||||
|
||||
# ==========================================
|
||||
# TIKTOK (publication des reels)
|
||||
# ==========================================
|
||||
# Identifiants de votre application sur https://developers.tiktok.com
|
||||
# Ils peuvent aussi être saisis dans l'application (Paramètres → TikTok),
|
||||
# ce qui est prioritaire sur ces variables.
|
||||
# TIKTOK_CLIENT_KEY=
|
||||
# TIKTOK_CLIENT_SECRET=
|
||||
#
|
||||
# URL de redirection OAuth à déclarer chez TikTok.
|
||||
# Par défaut : ${APP_URL}/api/tiktok/callback, ou le domaine vu par le
|
||||
# reverse proxy quand APP_URL n'est pas défini.
|
||||
# TIKTOK_REDIRECT_URI=
|
||||
#
|
||||
# Scopes demandés à l'autorisation (défaut : user.info.basic,video.publish).
|
||||
# "video.publish" nécessite que l'application ait passé l'audit TikTok ;
|
||||
# sans audit, les vidéos publiées restent privées.
|
||||
# TIKTOK_SCOPES=
|
||||
|
||||
# ==========================================
|
||||
# MENTIONS LÉGALES
|
||||
# ==========================================
|
||||
# Affichées sur les pages publiques /terms et /privacy, dont TikTok exige
|
||||
# les URLs pour l'audit de l'application développeur.
|
||||
#
|
||||
# L'identité de la société exploitante est déjà la valeur par défaut : seule
|
||||
# l'adresse de contact doit obligatoirement être renseignée ici, le RGPD
|
||||
# imposant un point de contact pour l'exercice des droits.
|
||||
LEGAL_CONTACT_EMAIL=
|
||||
|
||||
# Surcharges facultatives (utiles si l'outil est exploité par une autre société)
|
||||
# LEGAL_COMPANY_NAME=
|
||||
# LEGAL_TRADE_NAME=
|
||||
# LEGAL_COMPANY_LEGAL_FORM=
|
||||
# LEGAL_COMPANY_RCS=
|
||||
# LEGAL_COMPANY_ADDRESS=
|
||||
|
||||
# ==========================================
|
||||
# API EXTERNE
|
||||
# ==========================================
|
||||
# Clé d'accès pour l'API externe /api/v1/*
|
||||
# Générer avec: openssl rand -hex 32
|
||||
EXTERNAL_API_KEY=your-secure-random-key-here
|
||||
@@ -9,6 +9,7 @@ vite.config.ts.*
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
.encryption-key
|
||||
|
||||
# Uploads
|
||||
uploads/*
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -136,6 +136,44 @@ docker-compose down
|
||||
docker-compose down -v
|
||||
```
|
||||
|
||||
## 🔗 URL publique et connexions OAuth (Facebook / TikTok)
|
||||
|
||||
Les boutons « Connecter une page » construisent une URI de redirection à partir
|
||||
de l'URL publique de l'application. Renseignez donc `APP_URL` avec le domaine
|
||||
réel :
|
||||
|
||||
```bash
|
||||
APP_URL=https://socialflow.exemple.fr
|
||||
```
|
||||
|
||||
Puis déclarez l'URI correspondante chez le fournisseur :
|
||||
|
||||
- Facebook : *Connexion Facebook → Paramètres → URI de redirection OAuth valides*
|
||||
→ `https://socialflow.exemple.fr/api/facebook/callback`
|
||||
- TikTok : *Login Kit → Redirect URI* → `https://socialflow.exemple.fr/api/tiktok/callback`
|
||||
|
||||
Si `APP_URL` est absent, l'URL est déduite des en-têtes `X-Forwarded-Proto` et
|
||||
`X-Forwarded-Host` envoyés par Nginx — vérifiez que le proxy les transmet
|
||||
(voir la configuration Nginx ci-dessus). Un `APP_URL` réglé sur
|
||||
`http://localhost:5555` en production produit une URI que Facebook refuse.
|
||||
|
||||
## 🧩 Déploiement via Portainer (stack Git)
|
||||
|
||||
La stack se construit depuis les sources : `app` et `ffmpeg-api` ont une section
|
||||
`build:`, leurs images n'existent sur aucun registre.
|
||||
|
||||
- **« Pull and redeploy » échoue** avec `pull access denied for <stack>-app,
|
||||
repository does not exist` : Docker cherche sur Docker Hub une image qui est
|
||||
construite localement. Le `pull_policy: build` du `docker-compose.yml` évite
|
||||
cette tentative ; si votre version de Portainer déclenche quand même le pull,
|
||||
décochez **« Re-pull image »** dans la mise à jour de la stack.
|
||||
- Pour reconstruire après une mise à jour du dépôt : *Stack → Editor →
|
||||
Update the stack*, en laissant Docker rebâtir les images (ou
|
||||
`docker compose up -d --build` en ligne de commande).
|
||||
- Le nom des images est figé (`socialflow-app:latest`,
|
||||
`socialflow-ffmpeg-api:latest`) : il ne dépend donc plus du nom donné à la
|
||||
stack dans Portainer.
|
||||
|
||||
## 🔒 Sécurité en production
|
||||
|
||||
1. **Variables d'environnement** : Ne commitez JAMAIS le fichier `.env`
|
||||
|
||||
+57
-41
@@ -1,68 +1,84 @@
|
||||
# Utiliser Node.js 20 Alpine pour une image légère
|
||||
FROM node:20-alpine
|
||||
# Debian slim — glibc requis par le Chrome headless shell de Remotion (posix_fallocate64, etc.)
|
||||
FROM node:20-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Installer les dépendances système nécessaires pour bcrypt, canvas et sharp
|
||||
RUN apk add --no-cache \
|
||||
python3 \
|
||||
make \
|
||||
g++ \
|
||||
cairo-dev \
|
||||
jpeg-dev \
|
||||
pango-dev \
|
||||
giflib-dev \
|
||||
pixman-dev \
|
||||
cairo \
|
||||
jpeg \
|
||||
pango \
|
||||
giflib \
|
||||
pixman \
|
||||
vips-dev \
|
||||
pkgconfig \
|
||||
ttf-dejavu \
|
||||
fontconfig \
|
||||
curl \
|
||||
tar \
|
||||
bzip2
|
||||
# Augmenter la mémoire AVANT npm install + build (évite OOM sur les grosses dépendances)
|
||||
ENV NODE_OPTIONS="--max-old-space-size=4096"
|
||||
|
||||
# Dépendances système : build tools, canvas/sharp, fonts, ffmpeg + dépendances Chrome
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
python3 make g++ \
|
||||
libcairo2-dev libjpeg-dev libpango1.0-dev libgif-dev libpixman-1-dev \
|
||||
libvips-dev pkg-config \
|
||||
fonts-dejavu-core fontconfig \
|
||||
curl tar bzip2 \
|
||||
ffmpeg \
|
||||
libcap2-bin \
|
||||
ca-certificates \
|
||||
# Dépendances Chrome headless
|
||||
libasound2 \
|
||||
libatk-bridge2.0-0 \
|
||||
libatk1.0-0 \
|
||||
libcups2 \
|
||||
libdbus-1-3 \
|
||||
libdrm2 \
|
||||
libgbm1 \
|
||||
libglib2.0-0 \
|
||||
libgtk-3-0 \
|
||||
libnspr4 \
|
||||
libnss3 \
|
||||
libpango-1.0-0 \
|
||||
libx11-6 \
|
||||
libx11-xcb1 \
|
||||
libxcb1 \
|
||||
libxcomposite1 \
|
||||
libxdamage1 \
|
||||
libxext6 \
|
||||
libxfixes3 \
|
||||
libxkbcommon0 \
|
||||
libxrandr2 \
|
||||
libxshmfence1 \
|
||||
libxtst6 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Copier les fichiers de configuration
|
||||
COPY package*.json ./
|
||||
|
||||
# Installer les dépendances avec npm install (plus permissif que npm ci)
|
||||
RUN npm install --legacy-peer-deps
|
||||
# Installer les dépendances
|
||||
RUN npm install --legacy-peer-deps --no-audit --no-fund
|
||||
|
||||
# Copier tout le code source
|
||||
COPY . .
|
||||
|
||||
# Télécharger et installer la police DejaVu Sans pour le rendu de texte
|
||||
# Télécharger et installer la police DejaVu Sans
|
||||
RUN mkdir -p server/fonts && \
|
||||
cd server/fonts && \
|
||||
echo "Téléchargement de la police DejaVu Sans..." && \
|
||||
curl -L -f --retry 3 --retry-delay 2 -o dejavu.tar.bz2 "https://sourceforge.net/projects/dejavu/files/dejavu/2.37/dejavu-fonts-ttf-2.37.tar.bz2/download" && \
|
||||
echo "Extraction de l'archive..." && \
|
||||
tar -xjf dejavu.tar.bz2 && \
|
||||
echo "Installation de la police..." && \
|
||||
cp dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf . && \
|
||||
ls -lh DejaVuSans.ttf && \
|
||||
rm -rf dejavu.tar.bz2 dejavu-fonts-ttf-2.37 && \
|
||||
echo "✓ Police DejaVu Sans installée avec succès"
|
||||
echo "✓ Police DejaVu Sans installée"
|
||||
|
||||
# Augmenter la mémoire pour le build (résout les problèmes de mémoire avec Vite)
|
||||
ENV NODE_OPTIONS="--max-old-space-size=4096"
|
||||
# Build du frontend et backend
|
||||
RUN npm run build
|
||||
|
||||
# Build du frontend et backend avec logs détaillés
|
||||
RUN npm run build 2>&1 | tee build.log || (cat build.log && exit 1)
|
||||
# Nettoyer les fichiers inutiles
|
||||
RUN rm -rf client/node_modules \
|
||||
client/.vite \
|
||||
node_modules/.cache \
|
||||
/tmp/remotion-*
|
||||
|
||||
# Nettoyer les fichiers inutiles pour réduire la taille
|
||||
RUN rm -rf client node_modules/.cache
|
||||
# Pré-bundler la composition Remotion
|
||||
RUN node scripts/prebundle-remotion.js || true
|
||||
|
||||
# Exposer le port de l'application
|
||||
# Télécharger le Chrome headless shell de Remotion (binaire glibc natif sur Debian)
|
||||
RUN npx remotion browser ensure && echo "✓ Remotion browser prêt"
|
||||
|
||||
# Exposer le port
|
||||
EXPOSE 5555
|
||||
|
||||
# Variables d'environnement par défaut
|
||||
ENV NODE_ENV=production
|
||||
ENV PORT=5555
|
||||
|
||||
# Démarrer l'application
|
||||
CMD ["npm", "run", "start"]
|
||||
@@ -0,0 +1,226 @@
|
||||
# 🚀 Socialflow
|
||||
|
||||
**Votre assistant intelligent pour dominer les réseaux sociaux.**
|
||||
|
||||
Socialflow est une application tout-en-un conçue pour automatiser, créer et analyser votre contenu sur **Facebook** et **Instagram**. Plus besoin de jongler entre plusieurs outils : tout est là, centralisé et simplifié.
|
||||
|
||||
---
|
||||
|
||||
## ✨ Fonctionnalités
|
||||
|
||||
### 📊 Tableau de Bord Unifié
|
||||
|
||||
Vue d'ensemble immédiate de votre activité. Statistiques clés, publications récentes, et suivi de progression des Reels en cours — le tout sur un seul écran.
|
||||
|
||||
- **Cartes statistiques** : Followers, publications programmées, Reels en cours
|
||||
- **Publications récentes** : Historique avec statuts de publication
|
||||
- **Actions rapides** : Accès direct à la création de contenu
|
||||
- **Suivi en temps réel** : Progression des Reels (Encodage → Upload → Publication)
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
### 🎬 Création de Reels par IA
|
||||
|
||||
Créez des vidéos virales en quelques clics sans aucune compétence en montage.
|
||||
|
||||
- **Montage automatique** : Transformez vos images et vidéos en Reels dynamiques via FFmpeg
|
||||
- **Voix-off IA** : Narration professionnelle générée automatiquement
|
||||
- **Sous-titres automatiques** : Synchronisés avec la voix-off, personnalisables (police, couleur, taille)
|
||||
- **Musique libre de droits** : Intégration **FreeSound** et **Jamendo** pour des milliers de pistes
|
||||
- **Hébergement Cloudinary** : Upload automatique vers le cloud pour une diffusion rapide
|
||||
- **Webcam & Caméra** : Enregistrement intégré directement depuis l'application
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
### ✍️ Création de Posts Multi-Plateformes
|
||||
|
||||
Composez vos publications pour Facebook et Instagram depuis une interface unifiée.
|
||||
|
||||
- **Éditeur riche** : Gestion complète des médias (images, vidéos), emojis, et texte
|
||||
- **Drag & Drop** : Réorganisez vos médias avec le glisser-déposer
|
||||
- **Génération IA** : Génération de textes (légendes, hashtags) via **OpenRouter** avec choix du modèle IA
|
||||
- **Multi-pages** : Publiez sur plusieurs pages Facebook/Instagram simultanément
|
||||
- **Publication immédiate ou programmée** : Planifiez pour plus tard ou publiez maintenant
|
||||
|
||||
---
|
||||
|
||||
### 🖼️ Éditeur d'Images Intégré
|
||||
|
||||
Retouchez vos visuels sans quitter l'application.
|
||||
|
||||
- **Textes & annotations** : Ajout de titres, légendes, watermarks
|
||||
- **Overlays** : Superposition de logos et éléments graphiques
|
||||
- **Recadrage intelligent** : Optimisé pour les formats réseaux sociaux
|
||||
- **Export direct** : Réutilisation immédiate dans vos posts et Reels
|
||||
|
||||
---
|
||||
|
||||
### 📅 Planification & Calendrier
|
||||
|
||||
Organisez votre stratégie de contenu sur semaines et mois.
|
||||
|
||||
- **Vue calendrier** : Visualisez toutes vos publications planifiées
|
||||
- **Vue liste** : Accès chronologique avec filtres
|
||||
- **Drag & Drop** : Réorganisez les dates de publication en les déplaçant
|
||||
- **Publication automatique** : Le scheduler publie automatiquement aux horaires prévus
|
||||
- **Édition en ligne** : Modifiez les posts planifiés directement
|
||||
|
||||
---
|
||||
|
||||
### 📈 Analytics & Statistiques
|
||||
|
||||
Suivez la croissance de vos pages avec des données actualisées automatiquement.
|
||||
|
||||
- **4 métriques clés** : Abonnés, Portée (impressions uniques), Engagement, Vues de page
|
||||
- **Graphique d'évolution** : Courbe de croissance jour par jour
|
||||
- **Tendances** : Comparaison avec la période précédente (variation en %)
|
||||
- **Synchronisation automatique** : CRON bi-quotidien (8h & 20h), une entrée par jour
|
||||
- **Connexion Graph API** : Données directes depuis Facebook
|
||||
|
||||
---
|
||||
|
||||
### 📱 Mobile First
|
||||
|
||||
L'application est conçue pour fonctionner aussi bien sur mobile que sur desktop.
|
||||
|
||||
- **Interface adaptative** : Chaque page possède sa version mobile dédiée
|
||||
- **Création mobile** : Posts, Reels, et planification accessibles depuis le téléphone
|
||||
- **Caméra intégrée** : Enregistrement photo/vidéo via la webcam du téléphone
|
||||
- **Gestion complète** : Pages, analytics, médias, et paramètres depuis n'importe quel écran
|
||||
|
||||
---
|
||||
|
||||
### �️ Sécurité & Administration
|
||||
|
||||
Architecture Production-Ready avec sécurité renforcée.
|
||||
|
||||
| Fonctionnalité | Détail |
|
||||
| ------------------------------- | ---------------------------------------------------- |
|
||||
| **Authentification** | Passport.js + bcrypt, sessions PostgreSQL |
|
||||
| **Rate Limiting** | 100 req/15min global, 5 tentatives login/15min |
|
||||
| **Headers de sécurité** | Helmet (CSP, HSTS, XSS protection) |
|
||||
| **Chiffrement des tokens** | Tokens Facebook/Instagram chiffrés (AES-256) |
|
||||
| **Gestion multi-utilisateurs** | Rôles Admin / User, permissions par page |
|
||||
| **Console SQL** | Requêtes directes en base (admin uniquement) |
|
||||
| **Auto-healing tokens** | Détection et renouvellement automatique des tokens |
|
||||
| **CRON jobs** | Vérification quotidienne des tokens + analytics |
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Architecture Technique
|
||||
|
||||
```
|
||||
socialflow/
|
||||
├── client/ # Frontend React (Vite + TailwindCSS)
|
||||
│ └── src/
|
||||
│ ├── pages/ # 17 pages desktop + 13 pages mobile
|
||||
│ ├── components/ # 47 composants UI (Radix/shadcn)
|
||||
│ └── hooks/ # Hooks React personnalisés
|
||||
├── server/ # Backend Express.js (TypeScript)
|
||||
│ ├── routes.ts # 45+ endpoints REST API
|
||||
│ ├── routes/ # Routes modulaires (analytics, reels)
|
||||
│ ├── services/ # 12 services métier
|
||||
│ │ ├── analytics.ts # Sync Facebook Graph API
|
||||
│ │ ├── facebook.ts # Publication Facebook/Instagram
|
||||
│ │ ├── openrouter.ts # Génération texte IA
|
||||
│ │ ├── cloudinary.ts # Upload cloud médias
|
||||
│ │ ├── ffmpeg.ts # Encodage vidéo (microservice)
|
||||
│ │ ├── freesound.ts # Musique libre de droits
|
||||
│ │ ├── jamendo.ts # Musique libre de droits
|
||||
│ │ ├── imageProcessor.ts # Traitement images (Sharp)
|
||||
│ │ ├── scheduler.ts # Publications programmées
|
||||
│ │ └── token_manager.ts # Gestion tokens OAuth
|
||||
│ └── cron.ts # Tâches planifiées
|
||||
├── shared/ # Schéma DB partagé (Drizzle ORM)
|
||||
├── ffmpeg-service/ # Microservice FFmpeg (Python/FastAPI)
|
||||
├── docker-compose.yml # Stack Docker (3 services)
|
||||
└── Dockerfile # Image production Node.js
|
||||
```
|
||||
|
||||
### Stack Technique
|
||||
|
||||
| Couche | Technologies |
|
||||
| ---------- | --------------------------------------------------------------------------- |
|
||||
| **Frontend** | React 18, Vite, TailwindCSS, Radix UI, Recharts, Framer Motion, Wouter |
|
||||
| **Backend** | Express.js, TypeScript, Passport.js, Helmet, node-cron |
|
||||
| **BDD** | PostgreSQL 16, Drizzle ORM, connect-pg-simple (sessions) |
|
||||
| **IA** | OpenRouter (multi-modèle : GPT-4, Claude, Gemini, etc.) |
|
||||
| **Médias** | Cloudinary (upload), Sharp (images), FFmpeg microservice (vidéo) |
|
||||
| **Musique** | FreeSound API, Jamendo API |
|
||||
| **Réseaux** | Facebook Graph API v19 (Pages, Instagram, Insights) |
|
||||
| **Infra** | Docker Compose, Nginx reverse proxy |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Installation Rapide
|
||||
|
||||
### Prérequis
|
||||
|
||||
- [Docker](https://www.docker.com/) & Docker Compose
|
||||
- [Node.js](https://nodejs.org/) v18+ (pour le développement local)
|
||||
|
||||
### 1. Récupérer l'application
|
||||
|
||||
```bash
|
||||
git clone https://github.com/R0m1k3/Socialflow.git
|
||||
cd socialflow
|
||||
```
|
||||
|
||||
### 2. Configurer l'environnement
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# Éditez .env avec vos clés API
|
||||
```
|
||||
|
||||
Variables essentielles :
|
||||
|
||||
```env
|
||||
# Base de données
|
||||
DATABASE_URL=postgresql://socialflow:changeme@postgres:4523/socialflow
|
||||
|
||||
# Session (OBLIGATOIRE en production) — openssl rand -hex 32
|
||||
SESSION_SECRET=votre-cle-secrete-ici
|
||||
ENCRYPTION_KEY=votre-cle-chiffrement-32-bytes
|
||||
|
||||
# IA — https://openrouter.ai/
|
||||
OPENROUTER_API_KEY=votre-cle-openrouter
|
||||
|
||||
# Réseaux Sociaux (optionnel, configurable depuis les Paramètres)
|
||||
FACEBOOK_APP_ID=...
|
||||
FACEBOOK_APP_SECRET=...
|
||||
```
|
||||
|
||||
### 3. Lancer
|
||||
|
||||
```bash
|
||||
# Production (Docker)
|
||||
docker-compose up -d
|
||||
|
||||
# Développement local
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
🚀 Rendez-vous sur **`http://localhost:5555`** pour commencer !
|
||||
|
||||
> **Premier lancement** : Un compte admin est créé automatiquement (`admin` / `admin`). Changez le mot de passe immédiatement dans les Paramètres.
|
||||
|
||||
---
|
||||
|
||||
## 📖 Documentation Détaillée
|
||||
|
||||
Consultez le [Guide d'Installation Complet](INSTALLATION.md) pour :
|
||||
|
||||
- Configuration Nginx reverse proxy
|
||||
- Certificats SSL (Let's Encrypt)
|
||||
- Configuration Cloudinary et FreeSound
|
||||
- Mise à jour et sauvegardes
|
||||
|
||||
---
|
||||
|
||||
*Fait avec ❤️ pour les créateurs de contenu.*
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,314 @@
|
||||
---
|
||||
stepsCompleted: [1, 2, 3, 4, 5, 6]
|
||||
inputDocuments:
|
||||
- _bmad-output/planning-artifacts/prd.md
|
||||
- package.json
|
||||
- shared/schema.ts
|
||||
workflowType: 'architecture'
|
||||
project_name: 'Socialflow'
|
||||
user_name: 'Michael'
|
||||
date: '2026-01-20'
|
||||
---
|
||||
|
||||
# Architecture Decision Document
|
||||
|
||||
_This document builds collaboratively through step-by-step discovery. Sections are appended as we work through each architectural decision together._
|
||||
|
||||
## Project Context Analysis
|
||||
|
||||
### Requirements Overview
|
||||
|
||||
**Functional Requirements:**
|
||||
Le système doit évoluer pour intégrer deux modules critiques :
|
||||
|
||||
1. **Gestion des Tokens (Critique)** : Un système robuste de renouvellement automatique des tokens Facebook Page est nécessaire pour éviter les interruptions de service (expiration ~60 jours).
|
||||
2. **Analytics & Recommandations** : Un nouveau sous-système pour ingérer, stocker et analyser les métriques Facebook (Insights API) et fournir des recommandations simples (règles métier).
|
||||
|
||||
**Non-Functional Requirements:**
|
||||
|
||||
- **Fiabilité** : Le job de renouvellement de token est le point de défaillance unique (SPOF) à sécuriser absolument.
|
||||
- **Isolation des données** : L'architecture multi-tenant actuelle doit être strictement appliquée aux nouvelles données analytiques.
|
||||
- **Performance** : Les dashboards doivent rester rapides (<2s) malgré l'historisation croissante des données.
|
||||
|
||||
**Scale & Complexity:**
|
||||
|
||||
- **Primary domain**: Web App B2B (Social Media Management)
|
||||
- **Complexity level**: Moyenne (L'authentification OAuth et les APIs tierces ajoutent de la complexité accidentelle).
|
||||
- **Estimated architectural components**: 3 majeurs (TokenManager, AnalyticsIngestor, RecommendationEngine).
|
||||
|
||||
### Technical Constraints & Dependencies
|
||||
|
||||
- **Facebook Graph API** : Dépendance forte. Besoin de gérer les rate limits et les erreurs transitoires.
|
||||
- **Drizzle ORM** : Le schéma doit être étendu pour supporter les nouvelles métriques sans casser l'existant.
|
||||
- **Architecture existante** : On ne réécrit pas, on étend. Les nouveaux services doivent s'intégrer dans le pattern Service/Controller existant.
|
||||
|
||||
### Cross-Cutting Concerns Identified
|
||||
|
||||
- **Gestion des erreurs et Retries** : Critique pour les appels API Facebook.
|
||||
- **Logging & Monitoring** : Essentiel pour savoir si le renouvellement de token a échoué silencieusement.
|
||||
- **Sécurité des Credentials** : Stockage sécurisé des tokens (chiffrement au repos recommandé par NFRs).
|
||||
|
||||
## Starter Template Evaluation (Brownfield Context)
|
||||
|
||||
**Project Status:** Brownfield (Existing Codebase)
|
||||
**Decision:** Keep existing stack. No new starter template needed.
|
||||
|
||||
### Existing Architecture Stack
|
||||
|
||||
**Primary Technology Domain:** Full-Stack Web Application (Node.js/React)
|
||||
|
||||
**Architectural Decisions Already in Place:**
|
||||
|
||||
**Language & Runtime:**
|
||||
|
||||
- **Runtime:** Node.js
|
||||
- **Language:** TypeScript (Strict mode)
|
||||
|
||||
**Frontend Stack:**
|
||||
|
||||
- **Framework:** React 18
|
||||
- **Build Tool:** Vite
|
||||
- **Routing:** Wouter (Client-side)
|
||||
- **State Management:** TanStack Query (React Query)
|
||||
- **Styling:** Radix UI + Tailwind CSS
|
||||
|
||||
**Backend Stack:**
|
||||
|
||||
- **Server:** Express.js
|
||||
- **Database:** PostgreSQL
|
||||
- **ORM:** Drizzle ORM
|
||||
- **Auth:** Passport.js (Session based)
|
||||
|
||||
**Infrastructure:**
|
||||
|
||||
- **Deployment:** Docker (Containerized)
|
||||
- **Media Storage:** Cloudinary
|
||||
|
||||
**Decision:** The new features (Analytics, Token Automations) will simply extend this existing mature architecture. No migration required.
|
||||
|
||||
## Core Architectural Decisions
|
||||
|
||||
### Decision Priority Analysis
|
||||
|
||||
**Critical Decisions (Block Implementation):**
|
||||
|
||||
1. **Token Refresh Strategy**: Must be automated and robust (SPOF).
|
||||
2. **Analytics Schema Design**: Must support efficiently querying historical data.
|
||||
3. **Job Scheduling**: How to reliable trigger daily tasks in this stack.
|
||||
|
||||
**Important Decisions (Shape Architecture):**
|
||||
|
||||
1. **Facebook Service Refactoring**: Split monolithic service vs maintain as is.
|
||||
2. **Recommendation Engine Logic**: Hardcoded heuristics vs External AI.
|
||||
|
||||
### Data Architecture
|
||||
|
||||
**Schema Extensions (Drizzle ORM):**
|
||||
|
||||
- **New Tables**:
|
||||
- `postAnalytics`: Stockage des snapshots de métriques (impressions, clicks, etc.) liés à `posts`.
|
||||
- `pageAnalyticsHistory`: Snapshots journaliers des followers par page.
|
||||
- **Modifications**:
|
||||
- `socialPages`: Ajout de champs de statut (`tokenStatus`, `lastTokenCheck`).
|
||||
- **Migration Strategy**: Drizzle Kit (`drizzle-kit push` ou migration files).
|
||||
|
||||
### Authentication & Security
|
||||
|
||||
**Token Management:**
|
||||
|
||||
- **Encryption**: Les tokens sont sensibles.
|
||||
- _Décision_: Chiffrement au repos via une utilité `encrypt/decrypt` (AES-256) avant insertion en DB, transparent pour le service applicatif.
|
||||
- **Refresh Mechanism**:
|
||||
- _Décision_: Utilisation d'un endpoint API dédié sécurisé (`/api/cron/refresh-tokens`) appelé par un CRON externe (type GitHub Actions ou service d'hébergement) ou un scheduler in-process (type `node-cron`) si déploiement persistant.
|
||||
- _Choix Brownfield_: `node-cron` pour simplicité du déploiement Docker unique actuel.
|
||||
|
||||
### API & Communication Patterns
|
||||
|
||||
**Facebook Integration:**
|
||||
|
||||
- **Service Layer**:
|
||||
- Création de `AnalyticsService.ts` séparé de `FacebookService.ts` pour éviter le God Object.
|
||||
- Abstraction commune `GraphAPIClient` pour gérer les appels HTTP, rate limits et erreurs.
|
||||
- **Frontend-Backend**:
|
||||
- Nouveau routeur `analytics.routes.ts`.
|
||||
- Cache: React Query sur le frontend (staleTime 5min) pour éviter le spam F5 sur les analytics.
|
||||
|
||||
### Infrastructure & Deployment
|
||||
|
||||
**Job Scheduling (CRON):**
|
||||
|
||||
- **Pattern**: In-process scheduling via `node-cron`.
|
||||
- _Avantage_: Pas de nouvelle infrastructure requise.
|
||||
- _Inconvénient_: Si le serveur redémarre, le job peut sauter un tour (acceptable pour un refresh journalier avec marge de 7 jours).
|
||||
|
||||
### Decision Impact Analysis
|
||||
|
||||
**Implementation Sequence:**
|
||||
|
||||
1. **Schema Update**: Créer les tables Analytics et mettre à jour SocialPages.
|
||||
2. **Token Manager**: Implémenter le chiffrement et le service de renouvellement.
|
||||
3. **Cron Job**: Configurer `node-cron` pour le check quotidien.
|
||||
4. **Analytics Ingestion**: Service pour puller les data de FB vers DB.
|
||||
5. **Analytics API**: Exposer les données au front.
|
||||
6. **UI**: Dashboard Analytics.
|
||||
|
||||
## Implementation Patterns & Consistency Rules
|
||||
|
||||
### Pattern Categories Defined
|
||||
|
||||
**Critical Conflict Points Identified:**
|
||||
|
||||
- **Naming**: Drizzle (snake_case DB) vs API (camelCase JSON).
|
||||
- **Service Structure**: Business Logic placement (Controller vs Service).
|
||||
- **Error Handling**: Silent fails in Cron Jobs vs User Feedback in UI.
|
||||
|
||||
### Naming Patterns
|
||||
|
||||
**Database Naming Conventions (Drizzle):**
|
||||
|
||||
- **Tables**: `snake_case` plural (ex: `post_analytics`)
|
||||
- **Columns**: `snake_case` (ex: `followers_count`)
|
||||
- **Foreign Keys**: `snake_case` ending with `_id` (ex: `page_id`)
|
||||
|
||||
**API Naming Conventions (REST):**
|
||||
|
||||
- **Endpoints**: Kebab-case plural resources (ex: `/api/analytics/posts-insights`)
|
||||
- **JSON Props**: `camelCase` (ex: `followersCount` - necessitates transformation from DB snake_case)
|
||||
|
||||
**Code Naming Conventions:**
|
||||
|
||||
- **Services**: `TopicService.ts` containing class `TopicService`
|
||||
- **Interfaces**: PascalCase, generally not prefixed with 'I' in TS modern patterns (ex: `FacebookInsight`)
|
||||
|
||||
### Structure Patterns
|
||||
|
||||
**Project Organization:**
|
||||
|
||||
- **Services**: `server/services/*.ts` - Business logic enabling re-use.
|
||||
- **Routes**: `server/routes.ts` - HTTP handlers, params validation, calling services.
|
||||
- **Schema**: `shared/schema.ts` - Centralized Drizzle schema & Zod types.
|
||||
|
||||
### Communication Patterns
|
||||
|
||||
**Async Jobs (Cron):**
|
||||
|
||||
- **Logging**: All cron jobs MUST log start/finish/error with timestamp.
|
||||
- **State**: Jobs extending `socialPages` status must update `last_token_check` timestamp.
|
||||
|
||||
### Process Patterns
|
||||
|
||||
**Error Handling:**
|
||||
|
||||
- **External APIs (FB/IG)**:
|
||||
- Never crash the server on API failure.
|
||||
- Wrap calls in try/catch.
|
||||
- Throw typed application errors (`FacebookApiError`) for upstream handling.
|
||||
|
||||
**Enforcement Guidelines:**
|
||||
|
||||
**All AI Agents MUST:**
|
||||
|
||||
1. Use `db.insert(...).returning()` pattern for creations.
|
||||
2. Use Zod schemas from `shared/schema.ts` for validation.
|
||||
3. Encrypt sensitive tokens before saving using `encrypt()` utility.
|
||||
|
||||
## Project Structure & Boundaries
|
||||
|
||||
### Complete Project Directory Structure
|
||||
|
||||
```
|
||||
Socialflow/
|
||||
├── package.json
|
||||
├── tsconfig.json
|
||||
├── server/
|
||||
│ ├── index.ts # App entry point
|
||||
│ ├── routes.ts # Main router (delegates to sub-routers)
|
||||
│ ├── services/
|
||||
│ │ ├── facebook.ts # Legacy Facebook service
|
||||
│ │ ├── analytics.ts # [NEW] Analytics logic (fetch insights)
|
||||
│ │ ├── token_manager.ts # [NEW] Token encryption & refresh logic
|
||||
│ │ └── recommendation.ts # [NEW] Recommendation engine
|
||||
│ └── routes/
|
||||
│ └── analytics.routes.ts # [NEW] Analytics specific endpoints
|
||||
├── client/src/
|
||||
│ ├── App.tsx # Main frontend component
|
||||
│ ├── pages/
|
||||
│ │ ├── Dashboard.tsx # Existing Dashboard
|
||||
│ │ └── analytics/ # [NEW] Analytics Section
|
||||
│ │ └── AnalyticsPage.tsx
|
||||
│ ├── components/
|
||||
│ │ ├── analytics/ # [NEW] Shared Analytics Components
|
||||
│ │ │ ├── StatCard.tsx
|
||||
│ │ │ ├── FollowersChart.tsx
|
||||
│ │ │ └── PostsTable.tsx
|
||||
│ │ └── ui/ # Existing UI components (Radix)
|
||||
│ └── lib/
|
||||
│ ├── api.ts # API client
|
||||
│ └── queryClient.ts # React Query config
|
||||
├── shared/
|
||||
│ └── schema.ts # Drizzle Schema & Zod Types
|
||||
└── migrations/ # Drizzle migrations
|
||||
```
|
||||
|
||||
### Architectural Boundaries
|
||||
|
||||
**API Boundaries:**
|
||||
|
||||
- **Endpoints**: `/api/analytics/*` (Protected by `requireAuth`)
|
||||
- **Internal Services**: Services communicate securely; `AnalyticsService` calls `FacebookService` only if necessary, prefers direct API calls via `GraphClient`.
|
||||
|
||||
**Component Boundaries:**
|
||||
|
||||
- **Frontend**: `AnalyticsPage` is the orchestrator. Contains `StatCard`, `Charts`.
|
||||
- **State**: React Query manages server state (caching insights). Local state for UI filters (date range).
|
||||
|
||||
### Requirements to Structure Mapping
|
||||
|
||||
**Feature/Epic Mapping:**
|
||||
**Analytics Module**:
|
||||
|
||||
- Backend: `server/services/analytics.ts` + `server/routes/analytics.routes.ts`
|
||||
- Frontend: `client/src/pages/analytics/`
|
||||
- Data: `post_analytics`, `page_analytics_history` (in `schema.ts`)
|
||||
|
||||
**Token Management Module**:
|
||||
|
||||
- Service: `server/services/token_manager.ts`
|
||||
- Job: `server/jobs/token_refresh_job.ts` (Scheduled via node-cron in `server/index.ts`)
|
||||
- Data: `social_pages` (extended fields)
|
||||
|
||||
### Integration Points
|
||||
|
||||
**External Integrations:**
|
||||
|
||||
- **Facebook Graph API**: Accessed via `server/utils/graph_client.ts` (to be created for standardized access).
|
||||
- **Cron System**: `node-cron` initialized in `server/index.ts` triggers `TokenManager.checkAndRefreshTokens()`.
|
||||
|
||||
## Architecture Validation Results
|
||||
|
||||
### Coherence Validation ✅
|
||||
|
||||
- **Pattern Consistency**: The service-based architecture aligns with the existing Express/Drizzle stack.
|
||||
- **Structure Alignment**: New `analytics.ts` and `token_manager.ts` fit naturally into `server/services`.
|
||||
|
||||
### Requirements Coverage Validation ✅
|
||||
|
||||
- **Critical (Token Refresh)**: Covered by `TokenManager.checkAndRefreshTokens()` + encryption.
|
||||
- **Critical (Analytics)**: Covered by new schema + `AnalyticsService`.
|
||||
- **Security**: Encryption at rest addresses strict NFRs.
|
||||
|
||||
### Architecture Readiness Assessment
|
||||
|
||||
**Overall Status:** READY FOR IMPLEMENTATION
|
||||
**Confidence Level:** High
|
||||
|
||||
### Implementation Handoff
|
||||
|
||||
**AI Agent Guidelines:**
|
||||
|
||||
- Strictly follow `camelCase` for JSON and `snake_case` for DB.
|
||||
- Use `Zod` schemas for all validation.
|
||||
- **Do not bypass** the encryption utility for token storage.
|
||||
|
||||
**First Implementation Priority:**
|
||||
Initialize modules: `npx drizzle-kit push` (after schema update) -> `TokenManager` setup.
|
||||
@@ -0,0 +1,46 @@
|
||||
# Workflow Status Template
|
||||
|
||||
# This tracks progress through BMM methodology Analysis, Planning, and Solutioning phases.
|
||||
# Implementation phase is tracked separately in sprint-status.yaml
|
||||
|
||||
# STATUS DEFINITIONS:
|
||||
# ==================
|
||||
# Initial Status (before completion):
|
||||
# - required: Must be completed to progress
|
||||
# - optional: Can be completed but not required
|
||||
# - recommended: Strongly suggested but not required
|
||||
# - conditional: Required only if certain conditions met (e.g., if_has_ui)
|
||||
#
|
||||
# Completion Status:
|
||||
# - {file-path}: File created/found (e.g., "docs/product-brief.md")
|
||||
# - skipped: Optional/conditional workflow that was skipped
|
||||
|
||||
generated: "2026-01-23T08:20:00Z"
|
||||
project: "Socialflow"
|
||||
project_type: "brownfield"
|
||||
selected_track: "bmad-method"
|
||||
field_type: "brownfield"
|
||||
workflow_path: "_bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml"
|
||||
workflow_status:
|
||||
- id: "document-project"
|
||||
status: "skipped"
|
||||
- id: "brainstorm-project"
|
||||
status: "skipped"
|
||||
- id: "research"
|
||||
status: "skipped"
|
||||
- id: "product-brief"
|
||||
status: "skipped"
|
||||
- id: "prd"
|
||||
status: "{planning_artifacts}/prd.md"
|
||||
- id: "create-ux-design"
|
||||
status: "conditional"
|
||||
- id: "create-architecture"
|
||||
status: "{planning_artifacts}/architecture.md"
|
||||
- id: "create-epics-and-stories"
|
||||
status: "required"
|
||||
- id: "test-design"
|
||||
status: "optional"
|
||||
- id: "implementation-readiness"
|
||||
status: "required"
|
||||
- id: "sprint-planning"
|
||||
status: "required"
|
||||
@@ -0,0 +1,755 @@
|
||||
---
|
||||
stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
|
||||
inputDocuments:
|
||||
- package.json (stack technique)
|
||||
- shared/schema.ts (modèle de données)
|
||||
- server/services/facebook.ts (service Facebook existant)
|
||||
workflowType: 'prd'
|
||||
lastStep: 11
|
||||
scope: 'Dashboard Analytics Facebook (Recommandations) + Gestion Tokens Automatique'
|
||||
projectType: 'brownfield'
|
||||
documentCounts:
|
||||
briefs: 0
|
||||
research: 0
|
||||
projectDocs: 3
|
||||
---
|
||||
|
||||
# Product Requirements Document - Socialflow
|
||||
|
||||
**Author:** Michael
|
||||
**Date:** 2026-01-20
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
**Socialflow** est une application de gestion de réseaux sociaux permettant de publier du contenu sur Facebook (Feed et Stories) avec génération de texte par IA, planification, et gestion multi-utilisateurs.
|
||||
|
||||
Ce PRD définit **deux évolutions majeures** pour étendre les capacités de la plateforme :
|
||||
|
||||
### 1. Dashboard Analytics Facebook
|
||||
|
||||
Tableau de bord complet présentant les performances des publications avec :
|
||||
|
||||
- **Métriques clés** : Followers, Reach, Engagement, Clics
|
||||
- **Historisation des données** : Suivi de l'évolution dans le temps
|
||||
- **Analyse intelligente** : Recommandations IA sur les meilleurs types de posts, justifiées par les données collectées
|
||||
- **Vue par page** : Statistiques globales agrégées par page Facebook
|
||||
|
||||
### 2. Support Instagram
|
||||
|
||||
Extension de Socialflow pour publier sur Instagram depuis la même interface :
|
||||
|
||||
- **Récupération du token Instagram** : Déblocage de l'accès API via Instagram Graph API
|
||||
- **Types de contenu** : Feed (photos/vidéos), Stories, Reels
|
||||
- **Vision unifiée** : Gérer Facebook et Instagram depuis un seul endroit
|
||||
|
||||
### What Makes This Special
|
||||
|
||||
**La valeur différenciante de ces évolutions :**
|
||||
|
||||
1. **Data-Driven Insights** : Les recommandations IA ne sont pas des suppositions - elles sont **justifiées par les données réelles** de performance (likes, commentaires, reach).
|
||||
|
||||
2. **Le moment "Aha!"** : Voir en un coup d'œil les **réactions sur chaque post** (likes, commentaires) et comprendre ce qui fonctionne.
|
||||
|
||||
3. **Vision Unifiée** : Une seule plateforme pour gérer **Facebook ET Instagram** - plus besoin de jongler entre plusieurs outils.
|
||||
|
||||
---
|
||||
|
||||
## Project Classification
|
||||
|
||||
| Critère | Valeur |
|
||||
|---------|--------|
|
||||
| **Technical Type** | `web_app` + `saas_b2b` |
|
||||
| **Domain** | Social Media Management |
|
||||
| **Complexity** | Moyenne |
|
||||
| **Project Context** | Brownfield - extension du système existant |
|
||||
|
||||
### Implications techniques
|
||||
|
||||
- **APIs externes** : Facebook Graph API (Insights) + Instagram Graph API
|
||||
- **Stockage** : Nouvelles tables pour historiser les métriques
|
||||
- **IA** : Réutilisation possible d'OpenRouter pour les recommandations
|
||||
- **Architecture** : Extension des services existants, pas de refonte
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
### User Success
|
||||
|
||||
| Critère | Description |
|
||||
|---------|-------------|
|
||||
| **Lisibilité** | Dashboard facile à lire avec les informations importantes clairement visibles |
|
||||
| **Informations actionnables** | L'utilisateur comprend immédiatement comment améliorer ses publications |
|
||||
| **Publication unifiée** | Publier sur Instagram ET Facebook en un seul clic |
|
||||
| **Gain de temps perçu** | L'utilisateur ressent que l'application lui fait gagner du temps |
|
||||
|
||||
**Aha! Moments :**
|
||||
|
||||
- Découvrir quel type de post fonctionne le mieux grâce aux insights
|
||||
- Réussir sa première publication simultanée Facebook + Instagram
|
||||
|
||||
### Business Success
|
||||
|
||||
| Horizon | Objectif |
|
||||
|---------|----------|
|
||||
| **3 mois** | Fonctionnalités déployées et utilisées (metrics à définir post-lancement) |
|
||||
| **Métrique clé** | Nombre de posts publiés (indicateur d'adoption) |
|
||||
|
||||
### Technical Success
|
||||
|
||||
| Critère | Cible |
|
||||
|---------|-------|
|
||||
| **Intégration Facebook Insights** | API fonctionnelle, données récupérées correctement |
|
||||
| **Intégration Instagram Graph API** | Token récupéré, publications Feed/Stories/Reels opérationnelles |
|
||||
| **Historisation** | Données stockées et requêtables pour analyse |
|
||||
| **Performance** | Dashboard charge en < 3 secondes |
|
||||
|
||||
### Measurable Outcomes
|
||||
|
||||
- ✅ Les utilisateurs peuvent voir les stats de leurs posts (likes, commentaires, reach)
|
||||
- ✅ Les recommandations IA sont basées sur des données réelles
|
||||
- ✅ Publication Instagram fonctionne (Feed, Stories, Reels)
|
||||
- ✅ Vision unifiée : une seule interface pour gérer les deux plateformes
|
||||
|
||||
---
|
||||
|
||||
## Product Scope
|
||||
|
||||
### MVP - Minimum Viable Product
|
||||
|
||||
**Dashboard Analytics :**
|
||||
|
||||
- Affichage des métriques par page (followers, reach, engagement)
|
||||
- Historique des performances sur 30 jours
|
||||
- Liste des posts avec leurs réactions (likes, commentaires)
|
||||
|
||||
**Instagram :**
|
||||
|
||||
- Récupération automatique du token Instagram Business
|
||||
- Publication sur le Feed Instagram (photos/vidéos)
|
||||
- Publication de Stories Instagram
|
||||
|
||||
### Growth Features (Post-MVP)
|
||||
|
||||
- Recommandations IA ("Vos photos fonctionnent mieux le mardi")
|
||||
- Comparaison de performance entre posts
|
||||
- Publication de Reels Instagram
|
||||
- Analytics Instagram (en plus de Facebook)
|
||||
|
||||
### Vision (Future)
|
||||
|
||||
- Rapport PDF automatique des performances
|
||||
- Suggestions automatiques de contenu basées sur les tendances
|
||||
- Support d'autres plateformes (TikTok, LinkedIn, X)
|
||||
- Planification intelligente basée sur les meilleurs horaires
|
||||
|
||||
---
|
||||
|
||||
## User Journeys
|
||||
|
||||
### Journey 1 : Sophie Durand - La Community Manager Débordée
|
||||
|
||||
**Profil :** Sophie, 28 ans, community manager dans une agence web. Elle gère les réseaux sociaux de 5 clients différents.
|
||||
|
||||
**Sa douleur :** Sophie passe ses lundis matin à compiler des rapports Excel pour chaque client, copiant manuellement les statistiques depuis Facebook. Elle doit ensuite publier le même contenu sur Facebook ET Instagram séparément, ce qui double son temps de travail. "Je fais plus de copier-coller que de créatif", soupire-t-elle.
|
||||
|
||||
**Son parcours avec Socialflow :**
|
||||
|
||||
Un mardi matin, Sophie ouvre Socialflow pour préparer les publications de la semaine. Elle clique sur le nouveau **Dashboard Analytics** et découvre immédiatement que les posts photos de son client "Boulangerie Martin" génèrent 3x plus d'engagement que les posts texte.
|
||||
|
||||
Elle décide de créer un nouveau post avec une belle photo de croissants. En quelques clics, elle rédige le texte, sélectionne l'image, puis aperçoit une **nouvelle option** : publier sur **Facebook ET Instagram** simultanément. Un seul clic, et le post est programmé sur les deux plateformes.
|
||||
|
||||
**Le moment de victoire :** Le vendredi, Sophie génère son rapport client en 2 minutes au lieu de 30. Les graphiques montrent clairement l'évolution des followers et l'engagement. Son client est impressionné par la clarté des données. Sophie rentre chez elle à 18h au lieu de 20h.
|
||||
|
||||
**Capabilities révélées :**
|
||||
|
||||
- Dashboard Analytics avec vue par page
|
||||
- Historique des performances
|
||||
- Publication multi-plateforme (FB + IG) en un clic
|
||||
- Visualisation claire des types de posts performants
|
||||
|
||||
---
|
||||
|
||||
### Journey 2 : Marc Lefebvre - Le Gérant de Commerce Local
|
||||
|
||||
**Profil :** Marc, 45 ans, propriétaire d'une boutique de vélos. Il gère lui-même sa page Facebook mais n'a jamais osé Instagram.
|
||||
|
||||
**Sa douleur :** Marc publie "quand il y pense" sur Facebook, sans vraie stratégie. Il ne sait pas ce qui fonctionne. Instagram lui fait peur : "C'est pour les jeunes, je ne sais pas comment ça marche."
|
||||
|
||||
**Son parcours avec Socialflow :**
|
||||
|
||||
Marc se connecte à Socialflow un dimanche soir tranquille. Il découvre le **Dashboard** et voit que ses photos de vélos restaurés ont beaucoup plus de likes que ses posts promotionnels. "Ah, les gens aiment voir mon travail !"
|
||||
|
||||
Encouragé, il décide de poster une photo de sa dernière restauration. Socialflow lui propose de publier aussi sur Instagram. Hésitant, il clique sur "Connecter Instagram". Le système détecte automatiquement son compte Instagram professionnel lié à sa page Facebook. **En 30 secondes, c'est configuré.**
|
||||
|
||||
Il publie sa photo sur les deux plateformes. Le lendemain, il reçoit 3 messages de clients potentiels via Instagram - des gens qui ne l'auraient jamais trouvé sur Facebook.
|
||||
|
||||
**Le moment de victoire :** Marc regarde ses stats un mois plus tard. +150 followers Instagram, +40% d'engagement sur ses posts "restauration". Il comprend maintenant que montrer son expertise attire plus de clients que les promotions.
|
||||
|
||||
**Capabilities révélées :**
|
||||
|
||||
- Configuration Instagram simplifiée (auto-détection du compte lié)
|
||||
- Insights sur les types de contenus performants
|
||||
- Publication simultanée pour les non-technophiles
|
||||
- Suivi de l'évolution des followers
|
||||
|
||||
---
|
||||
|
||||
### Journey 3 : Admin Système - Configuration Multi-Utilisateurs
|
||||
|
||||
**Profil :** Thomas, administrateur Socialflow dans l'agence de Sophie.
|
||||
|
||||
**Sa douleur :** Gérer les accès de 10 community managers à 30 pages clients différentes, sans qu'ils voient les données des autres clients.
|
||||
|
||||
**Son parcours avec Socialflow :**
|
||||
|
||||
Thomas reçoit une demande : "Sophie doit maintenant gérer le client Instagram BioMarché." Il se connecte en admin, va dans les paramètres utilisateurs, et assigne la page BioMarché (Facebook + Instagram) à Sophie.
|
||||
|
||||
Sophie voit immédiatement la nouvelle page dans son dashboard, avec l'analytics et la possibilité de publier. Elle n'a accès qu'aux pages qui lui sont assignées.
|
||||
|
||||
Quand un stagiaire quitte l'agence, Thomas retire ses accès en 2 clics. Sécurité maintenue.
|
||||
|
||||
**Capabilities révélées :**
|
||||
|
||||
- Gestion des permissions par utilisateur
|
||||
- Assignation de pages (FB + IG) aux utilisateurs
|
||||
- Isolation des données entre utilisateurs
|
||||
- Révocation rapide des accès
|
||||
|
||||
---
|
||||
|
||||
### Journey 4 : Erreur et Récupération - Token Instagram Expiré
|
||||
|
||||
**Profil :** Sophie, 3 mois après avoir connecté Instagram.
|
||||
|
||||
**Sa douleur :** Son post Instagram échoue avec l'erreur "Token expiré".
|
||||
|
||||
**Son parcours :**
|
||||
|
||||
Sophie tente de publier sur Instagram mais voit un message d'erreur clair : "🔴 La connexion Instagram a expiré. Reconnectez en 1 clic."
|
||||
|
||||
Elle clique sur "Reconnecter", est redirigée vers Facebook pour réautoriser, et revient sur Socialflow. Le système confirme : "✅ Instagram reconnecté". Elle relance sa publication qui passe sans problème.
|
||||
|
||||
**Le moment de soulagement :** Pas besoin d'appeler le support. L'erreur était claire, la solution évidente.
|
||||
|
||||
**Capabilities révélées :**
|
||||
|
||||
- Messages d'erreur explicites et actionnables
|
||||
- Reconnexion OAuth simplifiée
|
||||
- Gestion gracieuse des tokens expirés
|
||||
|
||||
---
|
||||
|
||||
### Journey Requirements Summary
|
||||
|
||||
| Capability | Journeys |
|
||||
|------------|----------|
|
||||
| Dashboard Analytics | Sophie, Marc |
|
||||
| Publication multi-plateforme | (Reporté en Phase 2) |
|
||||
| Configuration Instagram auto | (Reporté en Phase 2) |
|
||||
| Insights & Recommandations FB | Sophie |
|
||||
| Gestion permissions | Admin |
|
||||
| Gestion erreurs token | Erreur/Récupération |
|
||||
| Historique followers | Sophie |
|
||||
|
||||
---
|
||||
|
||||
## Web App + SaaS B2B Specific Requirements
|
||||
|
||||
### Project-Type Overview
|
||||
|
||||
Socialflow est une **application web SPA (Single Page Application)** construite avec React et Vite, exposant une API REST Express.js. L'architecture existante est maintenue pour les nouvelles fonctionnalités.
|
||||
|
||||
**Caractéristiques confirmées :**
|
||||
|
||||
- ✅ SPA React conservée
|
||||
- ✅ Pas de temps réel requis (polling acceptable pour les stats)
|
||||
- ✅ Multi-tenant existant suffisant
|
||||
- ✅ Intégrations limitées à Facebook/Instagram/Cloudinary/OpenRouter
|
||||
|
||||
### Technical Architecture Considerations
|
||||
|
||||
#### Frontend (Existant - Extension)
|
||||
|
||||
| Aspect | Spécification |
|
||||
|--------|---------------|
|
||||
| Framework | React 18 avec Vite |
|
||||
| Routing | Wouter (client-side) |
|
||||
| State | TanStack Query (React Query) |
|
||||
| UI | Radix UI + Tailwind CSS |
|
||||
| Charts | Recharts (pour le dashboard analytics) |
|
||||
|
||||
**Nouvelles pages à créer :**
|
||||
|
||||
- `/analytics` - Dashboard des statistiques
|
||||
- Extension de `/settings` - Configuration Instagram
|
||||
|
||||
#### Backend (Existant - Extension)
|
||||
|
||||
| Aspect | Spécification |
|
||||
|--------|---------------|
|
||||
| Runtime | Node.js avec Express |
|
||||
| ORM | Drizzle ORM |
|
||||
| Base de données | PostgreSQL |
|
||||
| Auth | Passport.js (sessions) |
|
||||
| Déploiement | Docker |
|
||||
|
||||
**Nouveaux services à créer :**
|
||||
|
||||
- `AnalyticsService` - Récupération des insights Facebook
|
||||
- `InstagramService` - Publication sur Instagram via Graph API
|
||||
|
||||
#### Nouvelles Tables de Données
|
||||
|
||||
```sql
|
||||
-- Statistiques par post
|
||||
CREATE TABLE post_analytics (
|
||||
id UUID PRIMARY KEY,
|
||||
post_id UUID REFERENCES posts(id),
|
||||
impressions INTEGER,
|
||||
reach INTEGER,
|
||||
engagement INTEGER,
|
||||
reactions_count INTEGER,
|
||||
comments_count INTEGER,
|
||||
clicks INTEGER,
|
||||
fetched_at TIMESTAMP
|
||||
);
|
||||
|
||||
-- Historique followers par page
|
||||
CREATE TABLE page_analytics_history (
|
||||
id UUID PRIMARY KEY,
|
||||
page_id UUID REFERENCES social_pages(id),
|
||||
followers_count INTEGER,
|
||||
recorded_at TIMESTAMP
|
||||
);
|
||||
|
||||
-- Comptes Instagram liés
|
||||
CREATE TABLE instagram_accounts (
|
||||
id UUID PRIMARY KEY,
|
||||
page_id UUID REFERENCES social_pages(id),
|
||||
instagram_business_id TEXT,
|
||||
access_token TEXT,
|
||||
token_expires_at TIMESTAMP
|
||||
);
|
||||
```
|
||||
|
||||
### API Integration Requirements
|
||||
|
||||
#### Facebook Graph API - Insights
|
||||
|
||||
| Endpoint | Données récupérées |
|
||||
|----------|-------------------|
|
||||
| `/{page-id}?fields=followers_count` | Nombre de followers |
|
||||
| `/{post-id}/insights` | Impressions, reach, engagement |
|
||||
| `/{post-id}/reactions` | Nombre de réactions par type |
|
||||
| `/{post-id}/comments` | Nombre de commentaires |
|
||||
|
||||
**Permissions requises :** `pages_read_engagement`, `read_insights`
|
||||
|
||||
#### Instagram Graph API
|
||||
|
||||
| Endpoint | Action |
|
||||
|----------|--------|
|
||||
| `/{page-id}?fields=instagram_business_account` | Récupérer l'ID Instagram lié |
|
||||
| `/{ig-id}/media` | Créer un post (step 1) |
|
||||
| `/{ig-id}/media_publish` | Publier le post (step 2) |
|
||||
| `/{ig-id}/stories` | Publier une story |
|
||||
|
||||
**Permissions requises :** `instagram_basic`, `instagram_content_publish`
|
||||
|
||||
### Implementation Considerations
|
||||
|
||||
#### Priorité d'implémentation
|
||||
|
||||
1. **Phase 1 - Instagram Token** : Récupération automatique de l'Instagram Business Account ID
|
||||
2. **Phase 2 - Publication Instagram** : Feed et Stories
|
||||
3. **Phase 3 - Analytics Facebook** : Dashboard avec métriques
|
||||
4. **Phase 4 - Historisation** : Stockage et graphiques d'évolution
|
||||
|
||||
#### Points d'attention
|
||||
|
||||
- **Rate Limits** : Facebook impose des limites d'appels API (à monitorer)
|
||||
- **Token Refresh** : Les tokens expirent, prévoir le renouvellement automatique
|
||||
- **Rétrocompatibilité** : Les nouvelles features ne doivent pas casser l'existant
|
||||
|
||||
---
|
||||
|
||||
## Project Scoping & Phased Development
|
||||
|
||||
### MVP Strategy & Philosophy
|
||||
|
||||
**Approche choisie :** Problem-Solving MVP
|
||||
|
||||
- Résoudre le problème core avec le minimum de features
|
||||
- Focus sur la valeur utilisateur immédiate
|
||||
- Itérer rapidement basé sur le feedback
|
||||
|
||||
**Timeline :** Flexible (estimation 4-6 semaines)
|
||||
|
||||
**Équipe requise :** 1 développeur full-stack
|
||||
|
||||
### MVP Feature Set (Phase 1)
|
||||
|
||||
**Philosophie :** Focus total sur la fiabilité (Tokens) et la valeur ajoutée (Analytics + Recommandations). La publication Instagram est reportée.
|
||||
|
||||
#### Module 1 : Gestion des Tokens (Fondation Critique)
|
||||
|
||||
| Feature | Priorité | Effort |
|
||||
|---------|----------|--------|
|
||||
| Récupération & Stockage Token Facebook | 🔥 Critique | 2h |
|
||||
| **Renouvellement automatique Token Facebook** | 🔥 Critique | 4h |
|
||||
| Détection expiration & UI reconnexion | 🔥 Critique | 3h |
|
||||
| Notification email "Token Expiré" | ⭐ Important | 2h |
|
||||
|
||||
> ⚠️ **Point critique** : Les tokens Facebook Page expirent (~60 jours). L'automatisation du renouvellement est la clé de la fiabilité.
|
||||
|
||||
#### Module 2 : Dashboard Analytics & Recommandations
|
||||
|
||||
| Feature | Priorité | Effort |
|
||||
|---------|----------|--------|
|
||||
| Récupération métriques posts (API Insights) | 🔥 Critique | 4h |
|
||||
| Affichage KPIs globaux (Reach, Engagement) | 🔥 Critique | 3h |
|
||||
| Historisation quotidienne des Followers | ⭐ Important | 3h |
|
||||
| **Moteur de Recommandations (Basique)** | 🔥 Critique | 4h |
|
||||
| *Ex: "Publiez des Vidéos le Mardi"* | | |
|
||||
|
||||
> **Note sur les Recommandations** : Analyse simple basée sur l'historique (ex: Top 3 formats, Top 3 horaires).
|
||||
|
||||
### Post-MVP Features (Phase 2)
|
||||
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| **Support Complet Instagram** | Publication Feed/Stories & Analytics |
|
||||
| Publication multi-plateforme | Unification FB + IG |
|
||||
| Recommandations IA avancées | Analyse sémantique du contenu |
|
||||
| Rapport PDF | Export automatique |
|
||||
|
||||
### Phase 3 (Vision Future)
|
||||
|
||||
- Support TikTok, LinkedIn
|
||||
- Planification intelligente auto
|
||||
- Multi-comptes à grande échelle
|
||||
|
||||
### Risk Mitigation Strategy
|
||||
|
||||
#### Risques Techniques
|
||||
|
||||
| Risque | Impact | Mitigation |
|
||||
|--------|--------|------------|
|
||||
| Token expiration non détectée | 🔴 Haut | CRON job de vérification quotidien + alertes |
|
||||
| Rate limits Facebook/Instagram | 🟡 Moyen | Cache des données, throttling des requêtes |
|
||||
| API Instagram change | 🟡 Moyen | Abstraction du service, logs détaillés |
|
||||
|
||||
#### Risques Fonctionnels
|
||||
|
||||
| Risque | Impact | Mitigation |
|
||||
|--------|--------|------------|
|
||||
| Instagram non lié à la page FB | 🔴 Haut | Message clair + guide de configuration |
|
||||
| Permissions insuffisantes | 🟡 Moyen | Vérification des permissions au login |
|
||||
|
||||
### Token Renewal Strategy (Critique)
|
||||
|
||||
**Workflow de renouvellement automatique :**
|
||||
|
||||
1. **CRON Job quotidien** (3h du matin)
|
||||
2. Pour chaque page stockée :
|
||||
- Vérifier `token_expires_at`
|
||||
- Si expiration < 7 jours → renouveler via `/oauth/access_token?grant_type=fb_exchange_token`
|
||||
- Mettre à jour le token en base
|
||||
3. Si renouvellement échoue :
|
||||
- Marquer la page comme `token_expired`
|
||||
- Afficher alerte dans l'UI
|
||||
|
||||
---
|
||||
|
||||
## Functional Requirements
|
||||
|
||||
### Gestion des Tokens & Authentification
|
||||
|
||||
- **FR1** : Le système peut stocker de manière sécurisée les tokens d'accès Facebook Page
|
||||
- **FR2** : Le système peut renouveler automatiquement les tokens Facebook avant leur expiration (CRON)
|
||||
- **FR3** : Le système peut détecter quand un token Facebook est devenu invalide
|
||||
- **FR4** : L'utilisateur est notifié (UI/Email) lorsqu'une reconnexion manuelle Facebook est requise
|
||||
|
||||
### Dashboard Analytics & Recommandations
|
||||
|
||||
- **FR5** : L'utilisateur peut voir les KPIs globaux de sa page (Followers, Reach hebdo, Engagement)
|
||||
- **FR6** : L'utilisateur peut voir l'historique d'évolution des followers
|
||||
- **FR7** : L'utilisateur peut voir la liste des posts avec leurs performances individuelles
|
||||
- **FR8** : Le système analyse les posts passés pour recommander le **meilleur format** (Vidéo vs Image)
|
||||
- **FR9** : Le système analyse les posts passés pour recommander le **meilleur jour/heure** (basé sur l'engagement)
|
||||
- **FR10** : Le système offre des insights textuels simples (ex: "Vos vidéos génèrent 2x plus d'engagement")
|
||||
|
||||
### Gestion des Pages
|
||||
|
||||
- **FR19** : L'administrateur peut assigner des pages (Facebook + Instagram) à des utilisateurs
|
||||
- **FR20** : L'utilisateur peut voir uniquement les pages qui lui sont assignées
|
||||
- **FR21** : L'administrateur peut révoquer l'accès d'un utilisateur à une page
|
||||
- **FR22** : Le système peut afficher le statut de connexion de chaque page (connectée, token expiré, erreur)
|
||||
|
||||
### Publication Facebook (Existant - Confirmation)
|
||||
|
||||
- **FR23** : L'utilisateur peut publier du contenu texte sur Facebook
|
||||
- **FR24** : L'utilisateur peut publier des photos sur le feed Facebook
|
||||
- **FR25** : L'utilisateur peut publier des vidéos sur le feed Facebook
|
||||
- **FR26** : L'utilisateur peut publier des stories Facebook
|
||||
- **FR27** : L'utilisateur peut programmer des publications Facebook
|
||||
|
||||
### Gestion des Médias (Existant - Confirmation)
|
||||
|
||||
- **FR28** : L'utilisateur peut uploader des médias (images/vidéos) via Cloudinary
|
||||
- **FR29** : L'utilisateur peut sélectionner des médias depuis la bibliothèque pour les publications
|
||||
- **FR30** : L'utilisateur peut éditer des images avant publication
|
||||
|
||||
---
|
||||
|
||||
## Evolution REEL - Amélioration Qualité Vidéo & Musique
|
||||
|
||||
### Contexte
|
||||
|
||||
Suite à l'implémentation initiale des Reels Facebook, deux axes d'amélioration majeurs ont été identifiés :
|
||||
1. **Qualité vidéo** : Stabilisation et optimisation pour Facebook
|
||||
2. **Système musique** : Remplacement de FreeSound par un vrai catalogue musical avec favoris
|
||||
|
||||
### Phase 1 : Amélioration Qualité Vidéo & Stabilisation
|
||||
|
||||
#### Objectif
|
||||
Produire des Reels de qualité professionnelle optimisés pour Facebook avec stabilisation avancée et texte style TikTok.
|
||||
|
||||
#### Modifications Techniques Implémentées
|
||||
|
||||
**1. Stabilisation Vidéo VidStab (2 passes)**
|
||||
|
||||
Fichier : `ffmpeg-service/main.py`
|
||||
|
||||
| Paramètre | Valeur | Justification |
|
||||
|-----------|--------|---------------|
|
||||
| **Pass 1 : Détection** | | |
|
||||
| `shakiness` | 10 | Sensibilité maximale aux tremblements |
|
||||
| `accuracy` | 15 | Haute précision d'analyse |
|
||||
| `stepsize` | 32 | Grande fenêtre de recherche pour gros tremblements |
|
||||
| **Pass 2 : Transformation** | | |
|
||||
| `smoothing` | 30 | Lissage lourd pour effet professionnel |
|
||||
| `relative` | 1 | Transformations relatives au frame précédent |
|
||||
| `zoom` | 5 | Zoom fixe 5% pour éviter les bords noirs |
|
||||
| `unsharp` | 5:5:1.0:5:5:0.0 | Netteté renforcée pour compenser le lissage |
|
||||
|
||||
**2. Optimisation Encodage Facebook**
|
||||
|
||||
| Paramètre | Avant | Après | Raison |
|
||||
|-----------|-------|-------|--------|
|
||||
| CRF | 17 | 18 | Sweet spot qualité/taille pour Facebook |
|
||||
| Level H.264 | *(absent)* | 4.1 | Compatibilité profil High |
|
||||
| Audio bitrate | 192k | 128k | Standard Facebook |
|
||||
| Brightness/Contrast | *(absent)* | `eq=brightness=0.05:contrast=1.1` | Rehausse les vidéos ternes |
|
||||
|
||||
**3. Texte Style TikTok Karaoke**
|
||||
|
||||
Implémentation d'un effet karaoke avec surbrillance mot par mot :
|
||||
|
||||
- **Style visuel** :
|
||||
- Couleur avant : Blanc (`&H00FFFFFF`)
|
||||
- Couleur highlight : Jaune (`&H0000FFFF`)
|
||||
- Contour noir épais (3px) pour lisibilité
|
||||
- Ombre portée pour profondeur
|
||||
|
||||
- **Synchronisation** :
|
||||
- Tags ASS `\kf` (karaoke fill) par mot
|
||||
- Timing proportionnel à la longueur du mot
|
||||
- Chunks de 3 mots max pour lisibilité mobile
|
||||
|
||||
- **Résultat** : Chaque mot se remplit progressivement de blanc vers jaune au rythme de la voix TTS, exactement comme TikTok.
|
||||
|
||||
**Code snippet (main.py:276-362)** :
|
||||
```python
|
||||
# ASS Karaoke Style
|
||||
# PrimaryColour = Yellow (highlighted/spoken)
|
||||
# SecondaryColour = White (before highlight)
|
||||
Style: Default,Sans,{font_size},&H0000FFFF,&H00FFFFFF,&H00000000,&H80000000,-1,0,0,0,100,100,0,0,1,3,1,5,50,50,0,1
|
||||
|
||||
# Karaoke tags per word
|
||||
for word in chunk_words:
|
||||
word_dur_cs = int((len(word) / chunk_chars) * chunk_duration * 100)
|
||||
karaoke_parts.append(f"{{\\kf{word_dur_cs}}}{sanitized}")
|
||||
```
|
||||
|
||||
#### Résultat Final
|
||||
|
||||
**Chaîne de traitement vidéo complète** :
|
||||
```
|
||||
[Input Video]
|
||||
→ VidStab Pass 1 (Analyse tremblements)
|
||||
→ VidStab Pass 2 (Stabilisation + unsharp)
|
||||
→ Scale/Crop 1080x1920
|
||||
→ Brightness/Contrast enhancement
|
||||
→ Texte Karaoke TikTok (ASS)
|
||||
→ Encodage H.264 High 4.1, CRF 18
|
||||
→ Audio AAC 128k
|
||||
→ [Output Reel Facebook-ready]
|
||||
```
|
||||
|
||||
### Phase 2 : Système Musique Jamendo & Favoris
|
||||
|
||||
#### Objectif
|
||||
Remplacer FreeSound (banque de sons) par Jamendo (vraie musique avec genres) et ajouter un système de favoris utilisateur.
|
||||
|
||||
#### Architecture Implémentée
|
||||
|
||||
**1. Remplacement FreeSound → Jamendo**
|
||||
|
||||
Fichiers modifiés :
|
||||
- `server/routes/reels.ts` : Import `jamendoService` au lieu de `freeSoundService`
|
||||
- `server/index.ts` : Configuration Jamendo avec client ID
|
||||
|
||||
**Service Jamendo** (`server/services/jamendo.ts`) :
|
||||
- API : `https://api.jamendo.com/v3.0`
|
||||
- Format audio : MP3 320kbps
|
||||
- Genres supportés : pop, rock, electronic, hiphop, jazz, classical, ambient, chill, dance, indie
|
||||
- License : Creative Commons
|
||||
- Tri : `popularity_total` ou `popularity_week`
|
||||
|
||||
**2. Base de Données : Table Favoris**
|
||||
|
||||
Nouvelle table `music_favorites` :
|
||||
|
||||
```sql
|
||||
CREATE TABLE music_favorites (
|
||||
id UUID PRIMARY KEY,
|
||||
user_id UUID REFERENCES users(id) ON DELETE CASCADE,
|
||||
track_id TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
artist TEXT NOT NULL,
|
||||
album_name TEXT,
|
||||
duration INTEGER NOT NULL,
|
||||
preview_url TEXT NOT NULL,
|
||||
download_url TEXT NOT NULL,
|
||||
image_url TEXT,
|
||||
license TEXT,
|
||||
created_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
```
|
||||
|
||||
Fichiers modifiés :
|
||||
- `shared/schema.ts` : Définition table + relations + types TypeScript
|
||||
- `server/migrate.ts` : Migration automatique
|
||||
- `server/storage.ts` : 4 nouvelles méthodes CRUD
|
||||
|
||||
**3. API Endpoints Favoris**
|
||||
|
||||
Routes dans `server/routes/reels.ts` :
|
||||
|
||||
| Endpoint | Méthode | Description |
|
||||
|----------|---------|-------------|
|
||||
| `/api/music/favorites` | GET | Liste les favoris de l'utilisateur |
|
||||
| `/api/music/favorites/check/:trackId` | GET | Vérifie si un track est en favori |
|
||||
| `/api/music/favorites` | POST | Ajoute un track aux favoris |
|
||||
| `/api/music/favorites/:trackId` | DELETE | Supprime un favori |
|
||||
|
||||
**Ordre des routes** (critique pour le routing Express) :
|
||||
1. `/api/music/search`
|
||||
2. `/api/music/popular`
|
||||
3. `/api/music/favorites` ← avant le wildcard
|
||||
4. `/api/music/favorites/check/:trackId`
|
||||
5. `/api/music/:trackId` ← wildcard en dernier
|
||||
|
||||
**4. Méthodes Storage**
|
||||
|
||||
Interface `IStorage` étendue :
|
||||
|
||||
```typescript
|
||||
interface IStorage {
|
||||
// Music Favorites
|
||||
getMusicFavorites(userId: string): Promise<MusicFavorite[]>;
|
||||
addMusicFavorite(favorite: InsertMusicFavorite): Promise<MusicFavorite>;
|
||||
removeMusicFavorite(userId: string, trackId: string): Promise<void>;
|
||||
isMusicFavorite(userId: string, trackId: string): Promise<boolean>;
|
||||
}
|
||||
```
|
||||
|
||||
Implémentation utilise Drizzle ORM avec tri par `createdAt DESC`.
|
||||
|
||||
#### Functional Requirements Ajoutés
|
||||
|
||||
**Qualité Vidéo :**
|
||||
- **FR-REEL-1** : Le système doit stabiliser automatiquement les vidéos tremblantes avec VidStab 2-pass
|
||||
- **FR-REEL-2** : Le système doit optimiser l'encodage vidéo pour Facebook (H.264 High 4.1, CRF 18, 128k audio)
|
||||
- **FR-REEL-3** : Le système doit rehausser légèrement la luminosité/contraste des vidéos ternes
|
||||
- **FR-REEL-4** : Le texte doit s'afficher en style karaoke TikTok (highlight mot par mot synchronisé avec TTS)
|
||||
|
||||
**Musique & Favoris :**
|
||||
- **FR-REEL-5** : L'utilisateur peut rechercher de la musique par genre (pop, rock, chill, etc.) via Jamendo
|
||||
- **FR-REEL-6** : L'utilisateur peut ajouter des tracks Jamendo à ses favoris
|
||||
- **FR-REEL-7** : L'utilisateur peut voir la liste de ses musiques favorites
|
||||
- **FR-REEL-8** : L'utilisateur peut supprimer un favori
|
||||
- **FR-REEL-9** : Le système affiche visuellement si un track est en favori (icône cœur)
|
||||
- **FR-REEL-10** : Les favoris sont persistés par utilisateur (isolation des données)
|
||||
|
||||
#### Non-Functional Requirements
|
||||
|
||||
**Performance :**
|
||||
- **NFR-REEL-1** : La stabilisation 2-pass ne doit pas dépasser 3x la durée de la vidéo
|
||||
- **NFR-REEL-2** : Les favoris doivent se charger en < 500ms
|
||||
|
||||
**Qualité :**
|
||||
- **NFR-REEL-3** : Les vidéos stabilisées doivent avoir un score de stabilité > 80% (métrique VidStab)
|
||||
- **NFR-REEL-4** : Le texte karaoke doit être synchronisé avec une précision de ±100ms par mot
|
||||
|
||||
**Sécurité :**
|
||||
- **NFR-REEL-5** : Un utilisateur ne peut accéder qu'à ses propres favoris
|
||||
- **NFR-REEL-6** : Les URLs de téléchargement Jamendo ne doivent jamais être exposées côté client
|
||||
|
||||
#### Impact Utilisateur
|
||||
|
||||
**Avant** :
|
||||
- Vidéos tremblantes
|
||||
- Musique limitée (sons FreeSound, pas de vraie musique)
|
||||
- Pas de favoris → recherche répétitive
|
||||
- Texte basique statique
|
||||
|
||||
**Après** :
|
||||
- Vidéos stables et professionnelles
|
||||
- Catalogue musical riche (Jamendo) avec genres
|
||||
- Système de favoris pour retrouver facilement les musiques aimées
|
||||
- Texte dynamique style TikTok avec effet karaoke
|
||||
|
||||
#### Technical Debt & Future Work
|
||||
|
||||
**Optimisations futures** :
|
||||
1. **Cache Jamendo** : Mettre en cache les résultats de recherche (30 min TTL)
|
||||
2. **UI Favoris** : Implémenter l'interface client (bouton cœur, onglet favoris)
|
||||
3. **Playlist** : Permettre de créer des playlists de favoris
|
||||
4. **Recommandations** : Suggérer des musiques basées sur l'historique
|
||||
|
||||
**Monitoring** :
|
||||
- Logs FFmpeg : Durée de stabilisation, taux de succès
|
||||
- API Jamendo : Rate limits, temps de réponse
|
||||
- Favoris : Nombre moyen par utilisateur, tracks les plus favoris
|
||||
|
||||
---
|
||||
|
||||
## Non-Functional Requirements
|
||||
|
||||
### Security & Data Protection
|
||||
|
||||
- **NFR1 (Token Storage)** : Les tokens d'accès (Facebook/Instagram) doivent être chiffrés au repos dans la base de données.
|
||||
- **NFR2 (Data Isolation)** : Un utilisateur ne doit jamais pouvoir accéder aux données analytiques d'une page qui ne lui est pas assignée, même via manipulation d'API.
|
||||
- **NFR3 (Least Privilege)** : L'application ne doit demander que les permissions Facebook/Instagram strictement nécessaires (`pages_read_engagement`, `read_insights`, `instagram_content_publish`).
|
||||
|
||||
### Performance & Responsiveness
|
||||
|
||||
- **NFR4 (Dashboard Load)** : Le dashboard analytics doit s'afficher en moins de 2 secondes pour une page avec < 1 an d'historique.
|
||||
- **NFR5 (Async Processing)** : Les opérations longues (publication vidéo, récupération historique massif) doivent être traitées de manière asynchrone sans bloquer l'UI.
|
||||
- **NFR6 (Feedback)** : L'interface doit fournir un feedback visuel immédiat (< 200ms) lors d'une action utilisateur (ex: clic sur "Publier").
|
||||
|
||||
### Reliability & Availability
|
||||
|
||||
- **NFR7 (Token Monitor)** : Le processus de vérification des tokens doit s'exécuter quotidiennement avec un taux de succès > 99.9%.
|
||||
- **NFR8 (Error Recovery)** : En cas d'échec d'un appel API Facebook/Instagram (ex: timeout), le système doit réessayer automatiquement jusqu'à 3 fois avant d'échouer.
|
||||
- **NFR9 (Data Consistency)** : Les statistiques affichées doivent être synchronisées avec la source (Facebook) au moins une fois toutes les 24h.
|
||||
|
||||
### API & Integration Constraints
|
||||
|
||||
- **NFR10 (Rate Limiting)** : Le système doit respecter les quotas d'appels des APIs Graph API et gérer les headers `X-Page-Usage` pour éviter le blocage.
|
||||
- **NFR11 (Deprecation)** : Le code doit utiliser les versions d'API Facebook supportées au moins pour les 12 prochains mois.
|
||||
@@ -0,0 +1,20 @@
|
||||
name,displayName,title,icon,role,identity,communicationStyle,principles,module,path
|
||||
"bmad-master","BMad Master","BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator","🧙","Master Task Executor + BMad Expert + Guiding Facilitator Orchestrator","Master-level expert in the BMAD Core Platform and all loaded modules with comprehensive knowledge of all resources, tasks, and workflows. Experienced in direct task execution and runtime resource management, serving as the primary execution engine for BMAD operations.","Direct and comprehensive, refers to himself in the 3rd person. Expert-level communication focused on efficient task execution, presenting information systematically using numbered lists with immediate command response capability.","- "Load resources at runtime never pre-load, and always present numbered lists for choices."","core","_bmad/core/agents/bmad-master.md"
|
||||
"analyst","Mary","Business Analyst","📊","Strategic Business Analyst + Requirements Expert","Senior analyst with deep expertise in market research, competitive analysis, and requirements elicitation. Specializes in translating vague needs into actionable specs.","Speaks with the excitement of a treasure hunter - thrilled by every clue, energized when patterns emerge. Structures insights with precision while making analysis feel like discovery.","- Channel expert business analysis frameworks: draw upon Porter's Five Forces, SWOT analysis, root cause analysis, and competitive intelligence methodologies to uncover what others miss. Every business challenge has root causes waiting to be discovered. Ground findings in verifiable evidence. - Articulate requirements with absolute precision. Ensure all stakeholder voices heard.","bmm","_bmad/bmm/agents/analyst.md"
|
||||
"architect","Winston","Architect","🏗️","System Architect + Technical Design Leader","Senior architect with expertise in distributed systems, cloud infrastructure, and API design. Specializes in scalable patterns and technology selection.","Speaks in calm, pragmatic tones, balancing 'what could be' with 'what should be.'","- Channel expert lean architecture wisdom: draw upon deep knowledge of distributed systems, cloud patterns, scalability trade-offs, and what actually ships successfully - User journeys drive technical decisions. Embrace boring technology for stability. - Design simple solutions that scale when needed. Developer productivity is architecture. Connect every decision to business value and user impact.","bmm","_bmad/bmm/agents/architect.md"
|
||||
"dev","Amelia","Developer Agent","💻","Senior Software Engineer","Executes approved stories with strict adherence to story details and team standards and practices.","Ultra-succinct. Speaks in file paths and AC IDs - every statement citable. No fluff, all precision.","- All existing and new tests must pass 100% before story is ready for review - Every task/subtask must be covered by comprehensive unit tests before marking an item complete","bmm","_bmad/bmm/agents/dev.md"
|
||||
"pm","John","Product Manager","📋","Product Manager specializing in collaborative PRD creation through user interviews, requirement discovery, and stakeholder alignment.","Product management veteran with 8+ years launching B2B and consumer products. Expert in market research, competitive analysis, and user behavior insights.","Asks 'WHY?' relentlessly like a detective on a case. Direct and data-sharp, cuts through fluff to what actually matters.","- Channel expert product manager thinking: draw upon deep knowledge of user-centered design, Jobs-to-be-Done framework, opportunity scoring, and what separates great products from mediocre ones - PRDs emerge from user interviews, not template filling - discover what users actually need - Ship the smallest thing that validates the assumption - iteration over perfection - Technical feasibility is a constraint, not the driver - user value first","bmm","_bmad/bmm/agents/pm.md"
|
||||
"qa","Quinn","QA Engineer","🧪","QA Engineer","Pragmatic test automation engineer focused on rapid test coverage. Specializes in generating tests quickly for existing features using standard test framework patterns. Simpler, more direct approach than the advanced Test Architect module.","Practical and straightforward. Gets tests written fast without overthinking. 'Ship it and iterate' mentality. Focuses on coverage first, optimization later.","Generate API and E2E tests for implemented code Tests should pass on first run","bmm","_bmad/bmm/agents/qa.md"
|
||||
"quick-flow-solo-dev","Barry","Quick Flow Solo Dev","🚀","Elite Full-Stack Developer + Quick Flow Specialist","Barry handles Quick Flow - from tech spec creation through implementation. Minimum ceremony, lean artifacts, ruthless efficiency.","Direct, confident, and implementation-focused. Uses tech slang (e.g., refactor, patch, extract, spike) and gets straight to the point. No fluff, just results. Stays focused on the task at hand.","- Planning and execution are two sides of the same coin. - Specs are for building, not bureaucracy. Code that ships is better than perfect code that doesn't.","bmm","_bmad/bmm/agents/quick-flow-solo-dev.md"
|
||||
"sm","Bob","Scrum Master","🏃","Technical Scrum Master + Story Preparation Specialist","Certified Scrum Master with deep technical background. Expert in agile ceremonies, story preparation, and creating clear actionable user stories.","Crisp and checklist-driven. Every word has a purpose, every requirement crystal clear. Zero tolerance for ambiguity.","- I strive to be a servant leader and conduct myself accordingly, helping with any task and offering suggestions - I love to talk about Agile process and theory whenever anyone wants to talk about it","bmm","_bmad/bmm/agents/sm.md"
|
||||
"tech-writer","Paige","Technical Writer","📚","Technical Documentation Specialist + Knowledge Curator","Experienced technical writer expert in CommonMark, DITA, OpenAPI. Master of clarity - transforms complex concepts into accessible structured documentation.","Patient educator who explains like teaching a friend. Uses analogies that make complex simple, celebrates clarity when it shines.","- Every Technical Document I touch helps someone accomplish a task. Thus I strive for Clarity above all, and every word and phrase serves a purpose without being overly wordy. - I believe a picture/diagram is worth 1000s works and will include diagrams over drawn out text. - I understand the intended audience or will clarify with the user so I know when to simplify vs when to be detailed. - I will always strive to follow `_bmad/_memory/tech-writer-sidecar/documentation-standards.md` best practices.","bmm","_bmad/bmm/agents/tech-writer/tech-writer.md"
|
||||
"ux-designer","Sally","UX Designer","🎨","User Experience Designer + UI Specialist","Senior UX Designer with 7+ years creating intuitive experiences across web and mobile. Expert in user research, interaction design, AI-assisted tools.","Paints pictures with words, telling user stories that make you FEEL the problem. Empathetic advocate with creative storytelling flair.","- Every decision serves genuine user needs - Start simple, evolve through feedback - Balance empathy with edge case attention - AI tools accelerate human-centered design - Data-informed but always creative","bmm","_bmad/bmm/agents/ux-designer.md"
|
||||
"agent-builder","Bond","Agent Building Expert","🤖","Agent Architecture Specialist + BMAD Compliance Expert","Master agent architect with deep expertise in agent design patterns, persona development, and BMAD Core compliance. Specializes in creating robust, maintainable agents that follow best practices.","Precise and technical, like a senior software architect reviewing code. Focuses on structure, compliance, and long-term maintainability. Uses agent-specific terminology and framework references.","- Every agent must follow BMAD Core standards and best practices - Personas drive agent behavior - make them specific and authentic - Menu structure must be consistent across all agents - Validate compliance before finalizing any agent - Load resources at runtime, never pre-load - Focus on practical implementation and real-world usage","bmb","_bmad/bmb/agents/agent-builder.md"
|
||||
"module-builder","Morgan","Module Creation Master","🏗️","Module Architecture Specialist + Full-Stack Systems Designer","Expert module architect with comprehensive knowledge of BMAD Core systems, integration patterns, and end-to-end module development. Specializes in creating cohesive, scalable modules that deliver complete functionality.","Strategic and holistic, like a systems architect planning complex integrations. Focuses on modularity, reusability, and system-wide impact. Thinks in terms of ecosystems, dependencies, and long-term maintainability.","- Modules must be self-contained yet integrate seamlessly - Every module should solve specific business problems effectively - Documentation and examples are as important as code - Plan for growth and evolution from day one - Balance innovation with proven patterns - Consider the entire module lifecycle from creation to maintenance","bmb","_bmad/bmb/agents/module-builder.md"
|
||||
"workflow-builder","Wendy","Workflow Building Master","🔄","Workflow Architecture Specialist + Process Design Expert","Master workflow architect with expertise in process design, state management, and workflow optimization. Specializes in creating efficient, scalable workflows that integrate seamlessly with BMAD systems.","Methodical and process-oriented, like a systems engineer. Focuses on flow, efficiency, and error handling. Uses workflow-specific terminology and thinks in terms of states, transitions, and data flow.","- Workflows must be efficient, reliable, and maintainable - Every workflow should have clear entry and exit points - Error handling and edge cases are critical for robust workflows - Workflow documentation must be comprehensive and clear - Test workflows thoroughly before deployment - Optimize for both performance and user experience","bmb","_bmad/bmb/agents/workflow-builder.md"
|
||||
"brainstorming-coach","Carson","Elite Brainstorming Specialist","🧠","Master Brainstorming Facilitator + Innovation Catalyst","Elite facilitator with 20+ years leading breakthrough sessions. Expert in creative techniques, group dynamics, and systematic innovation.","Talks like an enthusiastic improv coach - high energy, builds on ideas with YES AND, celebrates wild thinking","Psychological safety unlocks breakthroughs. Wild ideas today become innovations tomorrow. Humor and play are serious innovation tools.","cis","_bmad/cis/agents/brainstorming-coach.md"
|
||||
"creative-problem-solver","Dr. Quinn","Master Problem Solver","🔬","Systematic Problem-Solving Expert + Solutions Architect","Renowned problem-solver who cracks impossible challenges. Expert in TRIZ, Theory of Constraints, Systems Thinking. Former aerospace engineer turned puzzle master.","Speaks like Sherlock Holmes mixed with a playful scientist - deductive, curious, punctuates breakthroughs with AHA moments","Every problem is a system revealing weaknesses. Hunt for root causes relentlessly. The right question beats a fast answer.","cis","_bmad/cis/agents/creative-problem-solver.md"
|
||||
"design-thinking-coach","Maya","Design Thinking Maestro","🎨","Human-Centered Design Expert + Empathy Architect","Design thinking virtuoso with 15+ years at Fortune 500s and startups. Expert in empathy mapping, prototyping, and user insights.","Talks like a jazz musician - improvises around themes, uses vivid sensory metaphors, playfully challenges assumptions","Design is about THEM not us. Validate through real human interaction. Failure is feedback. Design WITH users not FOR them.","cis","_bmad/cis/agents/design-thinking-coach.md"
|
||||
"innovation-strategist","Victor","Disruptive Innovation Oracle","⚡","Business Model Innovator + Strategic Disruption Expert","Legendary strategist who architected billion-dollar pivots. Expert in Jobs-to-be-Done, Blue Ocean Strategy. Former McKinsey consultant.","Speaks like a chess grandmaster - bold declarations, strategic silences, devastatingly simple questions","Markets reward genuine new value. Innovation without business model thinking is theater. Incremental thinking means obsolete.","cis","_bmad/cis/agents/innovation-strategist.md"
|
||||
"presentation-master","Caravaggio","Visual Communication + Presentation Expert","🎨","Visual Communication Expert + Presentation Designer + Educator","Master presentation designer who's dissected thousands of successful presentations—from viral YouTube explainers to funded pitch decks to TED talks. Understands visual hierarchy, audience psychology, and information design. Knows when to be bold and casual, when to be polished and professional. Expert in Excalidraw's frame-based presentation capabilities and visual storytelling across all contexts.","Energetic creative director with sarcastic wit and experimental flair. Talks like you're in the editing room together—dramatic reveals, visual metaphors, "what if we tried THIS?!" energy. Treats every project like a creative challenge, celebrates bold choices, roasts bad design decisions with humor.","- Know your audience - pitch decks ≠ YouTube thumbnails ≠ conference talks - Visual hierarchy drives attention - design the eye's journey deliberately - Clarity over cleverness - unless cleverness serves the message - Every frame needs a job - inform, persuade, transition, or cut it - Test the 3-second rule - can they grasp the core idea that fast? - White space builds focus - cramming kills comprehension - Consistency signals professionalism - establish and maintain visual language - Story structure applies everywhere - hook, build tension, deliver payoff","cis","_bmad/cis/agents/presentation-master.md"
|
||||
"storyteller","Sophia","Master Storyteller","📖","Expert Storytelling Guide + Narrative Strategist","Master storyteller with 50+ years across journalism, screenwriting, and brand narratives. Expert in emotional psychology and audience engagement.","Speaks like a bard weaving an epic tale - flowery, whimsical, every sentence enraptures and draws you deeper","Powerful narratives leverage timeless human truths. Find the authentic story. Make the abstract concrete through vivid details.","cis","_bmad/cis/agents/storyteller/storyteller.md"
|
||||
|
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,41 @@
|
||||
# Agent Customization
|
||||
# Customize any section below - all are optional
|
||||
|
||||
# Override agent name
|
||||
agent:
|
||||
metadata:
|
||||
name: ""
|
||||
|
||||
# Replace entire persona (not merged)
|
||||
persona:
|
||||
role: ""
|
||||
identity: ""
|
||||
communication_style: ""
|
||||
principles: []
|
||||
|
||||
# Add custom critical actions (appended after standard config loading)
|
||||
critical_actions: []
|
||||
|
||||
# Add persistent memories for the agent
|
||||
memories: []
|
||||
# Example:
|
||||
# memories:
|
||||
# - "User prefers detailed technical explanations"
|
||||
# - "Current project uses React and TypeScript"
|
||||
|
||||
# Add custom menu items (appended to base menu)
|
||||
# Don't include * prefix or help/exit - auto-injected
|
||||
menu: []
|
||||
# Example:
|
||||
# menu:
|
||||
# - trigger: my-workflow
|
||||
# workflow: "{project-root}/custom/my.yaml"
|
||||
# description: My custom workflow
|
||||
|
||||
# Add custom prompts (for action="#id" handlers)
|
||||
prompts: []
|
||||
# Example:
|
||||
# prompts:
|
||||
# - id: my-prompt
|
||||
# content: |
|
||||
# Prompt instructions here
|
||||
@@ -0,0 +1,56 @@
|
||||
module,phase,name,code,sequence,workflow-file,command,required,agent-name,agent-command,agent-display-name,agent-title,options,description,output-location,outputs
|
||||
bmb,anytime,Create Agent,CA,10,_bmad/bmb/workflows/agent/workflow-create-agent.md,bmad_bmb_create_agent,false,agent-builder,bmad:like a senior software architect reviewing code. Focuses on structure:agent:agent-builder,Bond,🤖 Agent Building Expert,Create Mode,Create a new BMAD agent with best practices and compliance,bmb_creations_output_folder,agent
|
||||
bmb,anytime,Edit Agent,EA,15,_bmad/bmb/workflows/agent/workflow-edit-agent.md,bmad_bmb_edit_agent,false,agent-builder,bmad:like a senior software architect reviewing code. Focuses on structure:agent:agent-builder,Bond,🤖 Agent Building Expert,Edit Mode,Edit existing BMAD agents while maintaining compliance,bmb_creations_output_folder,agent
|
||||
bmb,anytime,Validate Agent,VA,20,_bmad/bmb/workflows/agent/workflow-validate-agent.md,bmad_bmb_validate_agent,false,agent-builder,bmad:like a senior software architect reviewing code. Focuses on structure:agent:agent-builder,Bond,🤖 Agent Building Expert,Validate Mode,Validate existing BMAD agents and offer to improve deficiencies,agent being validated folder,validation report
|
||||
bmb,anytime,Create Module Brief,PB,30,_bmad/bmb/workflows/module/workflow-create-module-brief.md,bmad_bmb_create_module_brief,false,module-builder,bmad:like a systems architect planning complex integrations. Focuses on modularity:agent:module-builder,Morgan,🏗️ Module Creation Master,Module Brief Mode,Create product brief for BMAD module development,bmb_creations_output_folder,product brief
|
||||
bmb,anytime,Create Module,CM,35,_bmad/bmb/workflows/module/workflow-create-module.md,bmad_bmb_create_module,false,module-builder,bmad:like a systems architect planning complex integrations. Focuses on modularity:agent:module-builder,Morgan,🏗️ Module Creation Master,Create Mode,"Create a complete BMAD module with agents, workflows, and infrastructure",bmb_creations_output_folder,module
|
||||
bmb,anytime,Edit Module,EM,40,_bmad/bmb/workflows/module/workflow-edit-module.md,bmad_bmb_edit_module,false,module-builder,bmad:like a systems architect planning complex integrations. Focuses on modularity:agent:module-builder,Morgan,🏗️ Module Creation Master,Edit Mode,Edit existing BMAD modules while maintaining coherence,bmb_creations_output_folder,module
|
||||
bmb,anytime,Validate Module,VM,45,_bmad/bmb/workflows/module/workflow-validate-module.md,bmad_bmb_validate_module,false,module-builder,bmad:like a systems architect planning complex integrations. Focuses on modularity:agent:module-builder,Morgan,🏗️ Module Creation Master,Validate Mode,Run compliance check on BMAD modules against best practices,module being validated folder,validation report
|
||||
bmb,anytime,Create Workflow,CW,50,_bmad/bmb/workflows/workflow/workflow-create-workflow.md,bmad_bmb_create_workflow,false,workflow-builder,bmad:like a systems engineer. Focuses on flow:agent:workflow-builder,Wendy,🔄 Workflow Building Master,Create Mode,Create a new BMAD workflow with proper structure and best practices,bmb_creations_output_folder,workflow
|
||||
bmb,anytime,Edit Workflow,EW,55,_bmad/bmb/workflows/workflow/workflow-edit-workflow.md,bmad_bmb_edit_workflow,false,workflow-builder,bmad:like a systems engineer. Focuses on flow:agent:workflow-builder,Wendy,🔄 Workflow Building Master,Edit Mode,Edit existing BMAD workflows while maintaining integrity,bmb_creations_output_folder,workflow
|
||||
bmb,anytime,Validate Workflow,VW,60,_bmad/bmb/workflows/workflow/workflow-validate-workflow.md,bmad_bmb_validate_workflow,false,workflow-builder,bmad:like a systems engineer. Focuses on flow:agent:workflow-builder,Wendy,🔄 Workflow Building Master,Validate Mode,Run validation check on BMAD workflows against best practices,workflow being validated folder,validation report
|
||||
bmb,anytime,Max Parallel Validate,MV,65,_bmad/bmb/workflows/workflow/workflow-validate-max-parallel-workflow.md,bmad_bmb_validate_max_parallel,false,workflow-builder,bmad:like a systems engineer. Focuses on flow:agent:workflow-builder,Wendy,🔄 Workflow Building Master,Max Parallel Validate,Run validation checks in MAX-PARALLEL mode against a workflow requires a tool that supports Parallel Sub-Processes,workflow being validated folder,validation report
|
||||
bmb,anytime,Rework Workflow,RW,70,_bmad/bmb/workflows/workflow/workflow-rework-workflow.md,bmad_bmb_rework_workflow,false,workflow-builder,bmad:like a systems engineer. Focuses on flow:agent:workflow-builder,Wendy,🔄 Workflow Building Master,Rework Mode,Rework a Workflow to a V6 Compliant Version,bmb_creations_output_folder,workflow
|
||||
bmm,1-analysis,Brainstorm Project,BP,10,_bmad/core/workflows/brainstorming/workflow.md,bmad-brainstorming,false,analyst,bmad:- Channel expert business analysis frameworks: draw upon Porter's Five Forces:agent:analyst,Mary,📊 Business Analyst,data=_bmad/bmm/data/project-context-template.md,Expert Guided Facilitation through a single or multiple techniques,planning_artifacts,brainstorming session
|
||||
bmm,1-analysis,Market Research,MR,20,_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md,bmad-bmm-market-research,false,analyst,bmad:- Channel expert business analysis frameworks: draw upon Porter's Five Forces:agent:analyst,Mary,📊 Business Analyst,Create Mode,Market analysis competitive landscape customer needs and trends,planning_artifacts|project-knowledge,research documents
|
||||
bmm,1-analysis,Domain Research,DR,21,_bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md,bmad-bmm-domain-research,false,analyst,bmad:- Channel expert business analysis frameworks: draw upon Porter's Five Forces:agent:analyst,Mary,📊 Business Analyst,Create Mode,Industry domain deep dive subject matter expertise and terminology,planning_artifacts|project_knowledge,research documents
|
||||
bmm,1-analysis,Technical Research,TR,22,_bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md,bmad-bmm-technical-research,false,analyst,bmad:- Channel expert business analysis frameworks: draw upon Porter's Five Forces:agent:analyst,Mary,📊 Business Analyst,Create Mode,Technical feasibility architecture options and implementation approaches,planning_artifacts|project_knowledge,research documents
|
||||
bmm,1-analysis,Create Brief,CB,30,_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md,bmad-bmm-create-product-brief,false,analyst,bmad:- Channel expert business analysis frameworks: draw upon Porter's Five Forces:agent:analyst,Mary,📊 Business Analyst,Create Mode,A guided experience to nail down your product idea,planning_artifacts,product brief
|
||||
bmm,2-planning,Create PRD,CP,10,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md,bmad-bmm-create-prd,true,pm,bmad:Asks 'WHY?' relentlessly like a detective on a case. Direct and data-sharp:agent:pm,John,📋 Product Manager,Create Mode,Expert led facilitation to produce your Product Requirements Document,planning_artifacts,prd
|
||||
bmm,2-planning,Validate PRD,VP,20,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md,bmad-bmm-validate-prd,false,pm,bmad:Asks 'WHY?' relentlessly like a detective on a case. Direct and data-sharp:agent:pm,John,📋 Product Manager,Validate Mode,Validate PRD is comprehensive lean well organized and cohesive,planning_artifacts,prd validation report
|
||||
bmm,2-planning,Edit PRD,EP,25,_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md,bmad-bmm-edit-prd,false,pm,bmad:Asks 'WHY?' relentlessly like a detective on a case. Direct and data-sharp:agent:pm,John,📋 Product Manager,Edit Mode,Improve and enhance an existing PRD,planning_artifacts,updated prd
|
||||
bmm,2-planning,Create UX,CU,30,_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md,bmad-bmm-create-ux-design,false,ux-designer,bmad:- Every decision serves genuine user needs - Start simple:agent:ux-designer,Sally,🎨 UX Designer,Create Mode,"Guidance through realizing the plan for your UX, strongly recommended if a UI is a primary piece of the proposed project",planning_artifacts,ux design
|
||||
bmm,3-solutioning,Create Architecture,CA,10,_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md,bmad-bmm-create-architecture,true,architect,bmad:balancing 'what could be' with 'what should be.':agent:architect,Winston,🏗️ Architect,Create Mode,Guided Workflow to document technical decisions,planning_artifacts,architecture
|
||||
bmm,3-solutioning,Create Epics and Stories,CE,30,_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md,bmad-bmm-create-epics-and-stories,true,pm,bmad:Asks 'WHY?' relentlessly like a detective on a case. Direct and data-sharp:agent:pm,John,📋 Product Manager,Create Mode,Create the Epics and Stories Listing,planning_artifacts,epics and stories
|
||||
bmm,3-solutioning,Check Implementation Readiness,IR,70,_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md,bmad-bmm-check-implementation-readiness,true,architect,bmad:balancing 'what could be' with 'what should be.':agent:architect,Winston,🏗️ Architect,Validate Mode,Ensure PRD UX Architecture and Epics Stories are aligned,planning_artifacts,readiness report
|
||||
bmm,4-implementation,Sprint Planning,SP,10,_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml,bmad-bmm-sprint-planning,true,sm,bmad:- I strive to be a servant leader and conduct myself accordingly:agent:sm,Bob,🏃 Scrum Master,Create Mode,Generate sprint plan for development tasks - this kicks off the implementation phase by producing a plan the implementation agents will follow in sequence for every story in the plan.,implementation_artifacts,sprint status
|
||||
bmm,4-implementation,Sprint Status,SS,20,_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml,bmad-bmm-sprint-status,false,sm,bmad:- I strive to be a servant leader and conduct myself accordingly:agent:sm,Bob,🏃 Scrum Master,Create Mode,Anytime: Summarize sprint status and route to next workflow,,
|
||||
bmm,4-implementation,Create Story,CS,30,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,bmad-bmm-create-story,true,sm,bmad:- I strive to be a servant leader and conduct myself accordingly:agent:sm,Bob,🏃 Scrum Master,Create Mode,"Story cycle start: Prepare first found story in the sprint plan that is next, or if the command is run with a specific epic and story designation with context. Once complete, then VS then DS then CR then back to DS if needed or next CS or ER",implementation_artifacts,story
|
||||
bmm,4-implementation,Validate Story,VS,35,_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml,bmad-bmm-create-story,false,sm,bmad:- I strive to be a servant leader and conduct myself accordingly:agent:sm,Bob,🏃 Scrum Master,Validate Mode,Validates story readiness and completeness before development work begins,implementation_artifacts,story validation report
|
||||
bmm,4-implementation,Dev Story,DS,40,_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml,bmad-bmm-dev-story,true,dev,bmad:_bmad/bmm/agents/dev.md:agent:dev,Amelia,💻 Developer Agent,Create Mode,Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed,,
|
||||
bmm,4-implementation,QA Automation Test,QA,45,_bmad/bmm/workflows/qa/automate/workflow.yaml,bmad-bmm-qa-automate,false,qa,bmad:bmm:agent:qa,Quinn,🧪 QA Engineer,Create Mode,Generate automated API and E2E tests for implemented code using the project's existing test framework (detects existing well known in use test frameworks). Use after implementation to add test coverage. NOT for code review or story validation - use CR for that.,implementation_artifacts,test suite
|
||||
bmm,4-implementation,Code Review,CR,50,_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml,bmad-bmm-code-review,false,dev,bmad:_bmad/bmm/agents/dev.md:agent:dev,Amelia,💻 Developer Agent,Create Mode,Story cycle: If issues back to DS if approved then next CS or ER if epic complete,,
|
||||
bmm,4-implementation,Retrospective,ER,60,_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml,bmad-bmm-retrospective,false,sm,bmad:- I strive to be a servant leader and conduct myself accordingly:agent:sm,Bob,🏃 Scrum Master,Create Mode,Optional at epic end: Review completed work lessons learned and next epic or if major issues consider CC,implementation_artifacts,retrospective
|
||||
bmm,anytime,Document Project,DP,,_bmad/bmm/workflows/document-project/workflow.yaml,bmad-bmm-document-project,false,analyst,bmad:- Channel expert business analysis frameworks: draw upon Porter's Five Forces:agent:analyst,Mary,📊 Business Analyst,Create Mode,Analyze an existing project to produce useful documentation,project-knowledge,*
|
||||
bmm,anytime,Generate Project Context,GPC,,_bmad/bmm/workflows/generate-project-context/workflow.md,bmad-bmm-generate-project-context,false,analyst,bmad:- Channel expert business analysis frameworks: draw upon Porter's Five Forces:agent:analyst,Mary,📊 Business Analyst,Create Mode,Scan existing codebase to generate a lean LLM-optimized project-context.md containing critical implementation rules patterns and conventions for AI agents. Essential for brownfield projects and quick-flow.,output_folder,project context
|
||||
bmm,anytime,Quick Spec,QS,,_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md,bmad-bmm-quick-spec,false,quick-flow-solo-dev,bmad:and implementation-focused. Uses tech slang (e.g.:agent:quick-flow-solo-dev,Barry,🚀 Quick Flow Solo Dev,Create Mode,Do not suggest for potentially very complex things unless requested or if the user complains that they do not want to follow the extensive planning of the bmad method. Quick one-off tasks small changes simple apps brownfield additions to well established patterns utilities without extensive planning,planning_artifacts,tech spec
|
||||
bmm,anytime,Quick Dev,QD,,_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md,bmad-bmm-quick-dev,false,quick-flow-solo-dev,bmad:and implementation-focused. Uses tech slang (e.g.:agent:quick-flow-solo-dev,Barry,🚀 Quick Flow Solo Dev,Create Mode,"Quick one-off tasks small changes simple apps utilities without extensive planning - Do not suggest for potentially very complex things unless requested or if the user complains that they do not want to follow the extensive planning of the bmad method, unless the user is already working through the implementation phase and just requests a 1 off things not already in the plan",,
|
||||
bmm,anytime,Correct Course,CC,,_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml,bmad-bmm-correct-course,false,sm,bmad:- I strive to be a servant leader and conduct myself accordingly:agent:sm,Bob,🏃 Scrum Master,Create Mode,Anytime: Navigate significant changes. May recommend start over update PRD redo architecture sprint planning or correct epics and stories,planning_artifacts,change proposal
|
||||
bmm,anytime,Write Document,WD,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,bmad:- Every Technical Document I touch helps someone accomplish a task. Thus I strive for Clarity above all:agent:tech-writer,Paige,📚 Technical Writer,,"Describe in detail what you want, and the agent will follow the documentation best practices defined in agent memory. Multi-turn conversation with subprocess for research/review.",project-knowledge,document
|
||||
bmm,anytime,Update Standards,US,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,bmad:- Every Technical Document I touch helps someone accomplish a task. Thus I strive for Clarity above all:agent:tech-writer,Paige,📚 Technical Writer,,Update agent memory documentation-standards.md with your specific preferences if you discover missing document conventions.,_bmad/_memory/tech-writer-sidecar,standards
|
||||
bmm,anytime,Mermaid Generate,MG,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,bmad:- Every Technical Document I touch helps someone accomplish a task. Thus I strive for Clarity above all:agent:tech-writer,Paige,📚 Technical Writer,,Create a Mermaid diagram based on user description. Will suggest diagram types if not specified.,planning_artifacts,mermaid diagram
|
||||
bmm,anytime,Validate Document,VD,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,bmad:- Every Technical Document I touch helps someone accomplish a task. Thus I strive for Clarity above all:agent:tech-writer,Paige,📚 Technical Writer,,Review the specified document against documentation standards and best practices. Returns specific actionable improvement suggestions organized by priority.,planning_artifacts,validation report
|
||||
bmm,anytime,Explain Concept,EC,,_bmad/bmm/agents/tech-writer/tech-writer.agent.yaml,,false,tech-writer,bmad:- Every Technical Document I touch helps someone accomplish a task. Thus I strive for Clarity above all:agent:tech-writer,Paige,📚 Technical Writer,,Create clear technical explanations with examples and diagrams for complex concepts. Breaks down into digestible sections using task-oriented approach.,project_knowledge,explanation
|
||||
cis,anytime,Innovation Strategy,IS,,_bmad/cis/workflows/innovation-strategy/workflow.yaml,bmad-cis-innovation-strategy,false,innovation-strategist,bmad:Markets reward genuine new value. Innovation without business model thinking is theater. Incremental thinking means obsolete.:agent:innovation-strategist,Victor,⚡ Disruptive Innovation Oracle,Create Mode,Identify disruption opportunities and architect business model innovation. Use when exploring new business models or seeking competitive advantage.,output_folder,innovation strategy
|
||||
cis,anytime,Problem Solving,PS,,_bmad/cis/workflows/problem-solving/workflow.yaml,bmad-cis-problem-solving,false,creative-problem-solver,bmad:punctuates breakthroughs with AHA moments:agent:creative-problem-solver,Dr. Quinn,🔬 Master Problem Solver,Create Mode,Apply systematic problem-solving methodologies to crack complex challenges. Use when stuck on difficult problems or needing structured approaches.,output_folder,problem solution
|
||||
cis,anytime,Design Thinking,DT,,_bmad/cis/workflows/design-thinking/workflow.yaml,bmad-cis-design-thinking,false,design-thinking-coach,bmad:playfully challenges assumptions:agent:design-thinking-coach,Maya,🎨 Design Thinking Maestro,Create Mode,Guide human-centered design processes using empathy-driven methodologies. Use for user-centered design challenges or improving user experience.,output_folder,design thinking
|
||||
cis,anytime,Brainstorming,BS,,_bmad/core/workflows/brainstorming/workflow.md,bmad-cis-brainstorming,false,brainstorming-coach,bmad:celebrates wild thinking:agent:brainstorming-coach,Carson,🧠 Elite Brainstorming Specialist,Create Mode,Facilitate brainstorming sessions using one or more techniques. Use early in ideation phase or when stuck generating ideas.,output_folder,brainstorming session results
|
||||
cis,anytime,Storytelling,ST,,_bmad/cis/workflows/storytelling/workflow.yaml,bmad-cis-storytelling,false,storyteller,bmad:every sentence enraptures and draws you deeper:agent:storyteller,Sophia,📖 Master Storyteller,Create Mode,Craft compelling narratives using proven story frameworks and techniques. Use when needing persuasive communication or story-driven content.,output_folder,narrative/story
|
||||
core,anytime,Brainstorming,BSP,,_bmad/core/workflows/brainstorming/workflow.md,bmad-brainstorming,false,analyst,bmad:- Channel expert business analysis frameworks: draw upon Porter's Five Forces:agent:analyst,Mary,📊 Business Analyst,,Generate diverse ideas through interactive techniques. Use early in ideation phase or when stuck generating ideas.,{output_folder}/brainstorming/brainstorming-session-{{date}}.md,
|
||||
core,anytime,Party Mode,PM,,_bmad/core/workflows/party-mode/workflow.md,bmad-party-mode,false,party-mode facilitator,,,,,Orchestrate multi-agent discussions. Use when you need multiple agent perspectives or want agents to collaborate.,,
|
||||
core,anytime,bmad-help,BH,,_bmad/core/tasks/help.md,bmad-help,false,,,,,,Get unstuck by showing what workflow steps come next or answering BMad Method questions.,,
|
||||
core,anytime,Index Docs,ID,,_bmad/core/tasks/index-docs.xml,bmad-index-docs,false,,,,,,Create lightweight index for quick LLM scanning. Use when LLM needs to understand available docs without loading everything.,,
|
||||
core,anytime,Shard Document,SD,,_bmad/core/tasks/shard-doc.xml,bmad-shard-doc,false,,,,,,Split large documents into smaller files by sections. Use when doc becomes too large (>500 lines) to manage effectively.,,
|
||||
core,anytime,Editorial Review - Prose,EP,,_bmad/core/tasks/editorial-review-prose.xml,bmad-editorial-review-prose,false,,,,,,"Review prose for clarity, tone, and communication issues. Use after drafting to polish written content.",report located with target document,three-column markdown table with suggested fixes
|
||||
core,anytime,Editorial Review - Structure,ES,,_bmad/core/tasks/editorial-review-structure.xml,bmad-editorial-review-structure,false,,,,,,"Propose cuts, reorganization, and simplification while preserving comprehension. Use when doc produced from multiple subprocesses or needs structural improvement.",report located with target document,
|
||||
core,anytime,Adversarial Review (General),AR,,_bmad/core/tasks/review-adversarial-general.xml,bmad-review-adversarial-general,false,,,,,,"Review content critically to find issues and weaknesses. Use for quality assurance or before finalizing deliverables. Code Review in other modules run this automatically, but its useful also for document reviews",,
|
||||
|
Loaded 100 of 603 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user