AboutSkillsServicesResumeProjectsKind wordsBlogFree Tools
Say hello
0~A7*}B##}=/%8D++1=0~%4{~=;<||DC&B5AFA~<*_29<{F6|1DC;~{5EADFB}/8|0_//{{=~E+9>CBE$_3%2E5217/50>4~_|_|#90820/8*1=8_8D|410|/~0|60<=987<1#++113~4=|1__10#F8*_E8E_<C/*C*F7B11/_~7;41<#01605;{<{#D#0
A}7*A8;F2#%||=00#>*|142330>0647=801F=#EE28%15~{47>629;<112EB00E38~##F&0$;<CE11<+;/*_&1F101C2C_+*0$78$3|$/+}F_<_9=FE6>8|%C=_4B~04E0=|670+64/0%>#4B+0}>#+*>31/8<98//%8|1=E$;$3~{%F_$*|&6+5400229
~_09710<5B18113/0%*{+D/0#0+>$62*;F}D1422CC7;410&_1#BE|$017;F16##8&%B0A9__=1_%%#0=A+B_5&;%0$%1870<%/&_%7<0D}#{D18+#A9/}~<B></<574C/_;ECE4511D3/E03&9A47F7><#$1_=4/*|<0A113B&|*}8}#6%=<0B1*{/==1
+1&=<7/<F0_;1B*~</780F1<$&3B/FBA2DF/{}F/|00%1;E/1A1&48;795#B/#0%|#0261119{&+$04/*3AE#=/5~1/+5|5C+F010};366&C1}41{0}%F72/F4%0|+|==&9=00432{47D;88+#=_69}E>E}_&EC1*~80~+<;|61F#*=/0A#<1}~00=}&|~
1#D+3E2ADBE0EF$%1F</44E19;60_<5F+AFBE707/;1~33*==<~285DB715{05{/4~=*~=5D095E$;=%&}0C0;*%E#C}0<0{1D516}30#<%&=*&D|DD1231<=701=0_%0*}/2C1{{>;{*C&01=170710=/E&1&_FC7/3A;2<~0|8>1|/9/C{F0%0_19{}4
<8E/&C4681~*;&2>_40D#;014&&/4{0*;933F~;%|&*B=#*{;+>6_*7D5&7D_+*3=%0*E60801>/1F7038;A058&E191%FD|/+=C|*0{11C+100|#{>}=%B=~+*%+_3}E~5*B{01;20316<+&71E2|&}~1&6*{19&51E118{*_D}$11;01CB11CD$}_48$
9<F={B4E1#3%5|E>}0<0F|0+110F0FD73F#A179_/~%_F917*;D$<12&;>BF%1>>$6>D|=|8#%2+&=04<>04_}5>/0<9BD<{%6|01~/&503$D7<}+3|E$$=>_51&+9C%{9;/>A|07%0_674C=~0&121F>0EFA0+800$+~E7C1*1160<E7$#E1>89~>_0*;
*0C#1|4B07/%3_0A1A$9CE679014/</>2~#9$03*%FB#0&||BE4F201&_~B;>%7411%60F1;91702E=B++1$76%05088D=+/998;341<>6/F645#}~*+6777E%7E+<2&A9B7>;$#1368|#4_00&==;%1&5AAC{A2A6*41_760|1C5159;179C}%F0#2>A0
%+8=05|%A*1}+$2+1&60=|AB1B/1%/37~D018+91{{A1E%%%DB%C38//$C>69&>FE0D6{0|1%8/%D7+1DD~$6B0&>&;;/C;68=5*;$$8}B6&+|1/&~E3%=0B5%D_5<270#%{|=D*&|>|421+70__%41;&C|}+{A;=0~{200802/_31_0}13<{7+/&51+9}
*#1&1>E00_5E+11$4;&A%|0$#00%15&|3B;<;#5FE50D}3{/4*B/*2B60|=#F$|ED#3~/C&+&23BA0%80>;~#=7<_011>E1{0#062BD08#9$9B0}A&+%F1&#EEF6~0}6%|09&{~}1_F/0/>;*$A>;1A=#2>91~1%#}=F+#A#+~+27|58=|61D|9*A;5#%0
~6&{5F{41+06D{5_B}~|*&CCF7#24|#+117+BF/%D}CCAA_D<1{0+~A3|9_+02$;1;>#%279AE&13556*10C55/$117213150<08A0~E/41#C_F2/0_%;754A33/}~01|3$<4B%312=E48DA<_84&8&7#/7*0B>&030E={/05%><{_|=7$%4F&<0>1%~/=
EAF4%|0F>95/5=3D7*B6{*0D|001*5%~5=$13<84%D7618<+55%|A70*161B=5//5/*}>F_5*B1#B430A{}AA;$C<E|75&>/}{F{0<=96$*61D}#37F31C6<<*}%CA{90010A&<A{+21=020F88/<}/<;519+E%D1/9$_A1_={EC173{0$3DA>2#A17>;#
~79/{}A86__6=+D7$>C6$7_F;*$+~*1<0;01+=6&~1/2{44010|/$==_~~B11>*0F5}70D+=6_1&#~/0+$B10B/2F7E=7E1F|{_+&>135=#/#/&=AD|~0|9&E%=C_B5<F0|<|<&31#<0_#C%5<;5E|#<9|A/~01<CE;%AC>36;0AF41D1<}7{9$8#51|4{
/<{FC31~1D=<E2}E02}~#>#D;B<DD&F//0C4E1B129D0A&01D2E659*|31<&5A2+D9E#1A2D4<B1#>_{BF0~1B6BEB2*<51<;*4/43;/}>%#~B/++2$1#+FF;6/7<=%67{1F1}#8+&B0CD~|%=F0D1~0*%16E78/A>%_AE;{|3=0&1_=51C~%}~01#011%
$13D%3&F~C30={00_;114=30<C$;=B%<>4|A02${}3#E>1~000~E32%96++<}&*2316B7E|&C6DC$E%107<0}3}BF=0=F+CD;/>FA0{_{=1}A~A5013}#49|01+2A}+F;8=7|10%/017#AD239&=56%351A#E$7~E|1878$97/;6314E=$01+C1/A*=}0<
0<7;<141D&0$//#00E$B091$<4181102;;*15/5EA1%53_$%}%C%6|900;00C+D0#86F*AB0{01197BB%/2>0&~1+=*D41<D7044BE~C47/>6#*0=3+2<50&D70E0E;||_#A;8D0+|&EA*15E391<&E21E#&==4}~*<7%C9{+><2EB}9>1A~AF0_9+#%8{
#3CC1#*5161_81+1341189_0;126B2E+5_6&10#2_1/C22|#~323C;/D&A0070;FE/|&7/|E${~0+}0A/##31_01;|61%0~}&89}1<9401B<1000{<D/900<%}_<*>37D={=%*C9|D066<0CE=9&*}{8B=~*217&>4AD>E=E8%01$~5*6042~1*12D>71$
6EA09FB23##0015F34~_#=|=%3356|+6%1||9$8$_02*|/04AD9_>&1D}C1C0$|9#1}1<+EBB13<A;=0>C1F9527>+D<>0&{}6F9/$_7~B0}<~1*7210%F$B++8~&}#_01&1<E0C3<|=00>=1_&DD_;614}};C2&|$;826>#A0;BA51AE9|10*1~{3${7;
01EF_&D+_1~D8E0%_0{00=0E;F;_$={{;<9D1;C0+C|1|~B{~5$1D61/F500/*}E20&=11C1>}4>BD*_<*6+|>5#9_7|9A1B5=8==%%0{6C}C422D#3409&1>2|931<C3E;~00A=$=~0;33_|2#C62+<;F>%%0B<|1B}+{E8>*D6$8B|1E94D0&2DE}*6_
}_<_463$57762}C00EC8*0%_D0%7$~{+${D~|13*00>C|911=8091=2_7~44=1/>793&;1A+3%8>D{$2=0D*};$0;{0B/438>A5;;=/#0~/6AC}E#EE%000B|370=1D</;E34<*5|2}_=B+%1;~3B4=*F$48|0751~>0F5_E}A2<101+F_7$8/}10C6~#{
>&06D3#F~0&>>8A86=1E;860>>%A7/<;_~B1=B_5|#1E81;;+1F0E08A>D00FB|3439+=>D><DEAD{3E161_8A0<*80B0C%$~*8~0*;10$~FCC>7C#C~8231~$/=03}0C0=811C*|9D*0+61F>+/>9{B}=}1$E&>}_&1|7%4<~A0B~B|8&999*A<$_341*
91=8/<B~D*+0}3E_2_>2#1/0%64=D+6DABC~~7DE_8F/<{0+1#=;/1001=5>219%7}4C21A3;#F8~>{}98C%A0*1~>DA5824{8111}0}}1<139<*6F0&{5EEA0#4BE30>~9*A/1+&1/0&F155#6206|#64}~C07|8C70%$0=1~$}*F%&<E7~+$$8|>>+C=
==9E%{2&2D;__<{2;5_~<=}1~={0~*>41/%<8|*8*3118/B=D>/_&;8C}0B_6}3_107D1<442/$1_E&/{%%/0#5E/6|93/0E&*=<011>0D_10>&C+B0_$06C4}<;2>1=}B}02DC=<011D1<C}C01*9_>>851F818>~%F/>11|6<//A2#DFA+8<B#C}1~/}
1>B{0/E3D{F&}&$&5>{111%A%F<#<0818+55D5/3B6=F/*D#|10*/21|97{_>1D*714;>%~=%|&<FDA+511178;C9;{1>0*+;$8D/>%4&8%D+D2#{{24_$%6910|17$>230~D*A44;~01%0+1D1#_>;D19{3<>2~C5/00E15%=B|0~03+*1A1_#%9A<10{
E#//759C4{>0101881_54FE;=~$$<3050FA>F09*BD0#8}4#ECC#0#19|E2011=|<$C1%{0}34~_02#4+0~#>2A7{&>0#=00CF_#$0DA0701/B_>6{C+442_><0CC;|>1C<8/B0*75}0C3A=}*~}6085{0=>*}6<=#2023<&<0$&$B=319048_{$}0}/<1
<+0$;*>$>E1+3=AF76$~97&F<#~30F&1B=051+A&$232<5*C<25E=0*F}&{6390<E*5|650&2}A>FB}4#=|1101}C8EBA&2}/500>A}EB$A}+0/1%0FFA9F<}%8D}0;%>>6C5{{1|F~/E+*E0;3~<;0=*>11+41*_7{F832+<F~_+143=}B$&E81{FC}91
&}/8|E_=|14%0003{1CE&C04}+_&E2}0D4761E89+0279;2B%6|&11$$193145+///|B1>8&_}1=/0E|B4{3EE&#&44B~<B01$}=$<#}8D*691$B4>F116A2F{1#A119&|E}1D|%+C01|=10{6>9B0BD}B;A$7AD*#A$F18A}_#EA|955|1};#{BD+&640
{F|04{#2A%C1D4~}C/2D$4_*#7{~#}11|$%106~|;9*+40943<A08%3~=7;/{|77~9%~_}>*1_;A;B3<0{9{/E=04E1/4|1;0#*}5~%0~6}0D;/2<>{<|~&+;};%A8*&0C_90BB26}08;01E4}C+=E6*8_$1|&;E7C$#&2|#}<3~==A_FA<45{1&<41%B_
0}FB+E45=_D/10%0&E4E&0F/{85$;>E2%>1<&8=<C=0$0+_D1C47$9DA8+*D9_3/78~#6651#;>E>B;_}FC+&1C56131102~/=;*04<;<A}~B<;F~;;D15}01BA4+0609E89_0C=<1>A99$1}%9;&D*3;07+2=*83A{;{0%&<*B/334B=>*70D}5|1B77=
%DB2+1%*D8~4*C/060=/65#5F<|BD%E11<>7+{=C3123+39%~5%0=1_E05FA|150F0*~+#E$0011__6&{30E0A51<|C6E1D%}0><2F65A***~#90*6|1A12&0_=%%52+=<=D|=<F~40<2#|={36BB~3%+7ED41=37*9+<1#A31>46C641=*0*|=+~428C3
const idea = 'worth sharing';
await write(idea);
publish()
NOTES ✦ IDEAS ✦ LESSONS ✦
The blog

Posts tagged“Workflow”

3 posts on this topic.

Claude CodeAIWorkflowClaude DesignDatabaseDesignGitNext.jsPostgresPrismaSkillsSpec-Driven DevelopmentSubagentsTypeScriptVersion ControlEngineeringProductShippingClaude CodeAIWorkflowClaude DesignDatabaseDesignGitNext.jsPostgresPrismaSkillsSpec-Driven DevelopmentSubagentsTypeScriptVersion ControlEngineeringProductShipping

Latest writing

All posts6Claude Code5AI4Workflow3Claude Design1Database1Design1Git1Next.js1Postgres1Prisma1Skills1Spec-Driven Development1Subagents1TypeScript1Version Control1
An orchestrator with a small main context sends briefs to three subagents that read files and pages, and gets short lists back
Sep 29, 20264 min read

Let the expensive model think and the cheap one look things up

How I use subagents for discovery and lookups so the main agent keeps a clean context, and where subagents go wrong.

Claude CodeSubagentsAIWorkflow
Read the post
Before: one long CLAUDE.md holding every rule. After: a short CLAUDE.md, always-visible skill descriptions and skill bodies loaded only on a match
Sep 18, 20263 min read

CLAUDE.md or a skill? Where your rules should live

My CLAUDE.md kept growing every time Claude got something wrong. Moving task-specific rules into skills fixed most of it, with some caveats.

Claude CodeSkillsAI
Three stages of a spec: matching the code while building, still fine at shipping, then drifting months later while the agent still reads it as current
Sep 8, 20263 min read

Why I dropped OpenSpec for a few thin spec skills

Spec-driven development works, until the specs pile up. What I kept, what I dropped, and why stale specs quietly hurt your agent.

Claude CodeSpec-Driven DevelopmentAI

Got a project
in mind?

Say hello
contact@prageethsilva.com
AboutProjectsBlogFree ToolsContact
© 2026 Prageeth Silva