Engineering standards: sabihin nang isang beses, ipatupad kung saan mahalaga
Ang kusina ng restaurant ay may ilang tuntunin sa dingding ("maghugas ng kamay") at ilang tuntuning nakapaloob sa kagamitan (namamatay ang oven kapag binuksan ang pinto). Ang poster sa dingding ay puwedeng makalimutan. Ang built-in na kandado ay hindi. Ang magagandang engineering standards ay gumagamit ng pareho, at alam nila kung aling tuntunin ang nararapat saan.
- Hinahati ng best-practices page ng Claude Code ng Anthropic ang mga instruksyon sa dalawang uri. Ang guidance (prompt mo,
CLAUDE.md, skills) ay binabasa ng model, na "usually follows" ito pero hindi sapilitan. Ang mga enforced na tuntunin (hooks, permission rules, managed settings, tests, CI) ay ipinapatupad ng Claude Code o ng pipeline mo at hindi nakadepende sa pasya ng model. - Payo ng docs: kung patuloy mong dinadagdagan ng diin ang isang linya sa
CLAUDE.mdat hindi pa rin ito nasusunod ni Claude, ang linyang iyon ay nararapat sa hook. Totoo rin ang kabaligtaran: kung may mga hook ka para sa mga bagay na kagustuhan lang, burahin ang mga iyon at hayaang magpasya si Claude. - Nilo-load ang
CLAUDE.mdsa bawat session, kaya bawat linya ay kumakain ng kaunting atensyon sa bawat gawain. Itabi ito para sa mga bagay na hindi malalaman ni Claude mula sa code: ang eksaktong test, typecheck at lint commands, mga desisyong wala sa repo, at mga gotcha. Ang mga personal na kagustuhan ay nasaCLAUDE.local.md, na idinadagdag mo sa.gitignore. - Nagbabasa ang Claude Code ng settings mula sa ilang lugar. Ang scope ang nagpapasya kung sino ang naaapektuhan ng isang setting: user (
~/.claude/settings.json, ikaw sa bawat project), shared project (.claude/settings.json, lahat sa repo kung na-commit), project local (.claude/settings.local.json, ikaw sa isang project) at managed (itinakda ng organisasyon; walang file mo ang makakapag-override rito). - Prayoridad, mula pinakamataas: managed settings, command-line
--settings, project local, shared project, user. Ang mga list setting tulad ngpermissions.alloway nagsasama-sama sa mga file sa halip na nagpapalit. - May mga key na hindi kailanman umiiral mula sa file na naka-commit sa repo, at ang ilan, tulad ng
allowrules, ay naghihintay hanggang pagkatiwalaan ng bawat teammate ang folder. Angdenyataskrules ay umiiral agad. I-run ang/statuspara makita kung aling mga pinagmumulan ng settings ang na-load. - Kapaki-pakinabang lang ang mga standard kung nahahanap at nagagamit ng mga tao. Sumulat ng isang maikling engineering standards file (tinatawag natin itong
ENGINEERING.mdsa course na ito) at i-link mula saCLAUDE.md.
| Tuntunin | Guidance o enforced? | Saan ito nakalagay |
|---|---|---|
| "Gumamit ng malinaw na pangalan para sa mga function" | Guidance | CLAUDE.md |
"I-run ang python3 -m unittest bago mo sabihing tapos na" | Guidance, dagdag ang pagpapatupad ng Stop hook at CI | CLAUDE.md, .claude/settings.json, CI |
"Huwag kailanman basahin ang .env" | Enforced | permissions.deny rule |
| "Walang magme-merge nang walang pasadong test run at isang pag-apruba ng tao" | Enforced | Branch protection (Lesson 2) |
"Huwag galawin ang migrations/ folder" | Enforced | PreToolUse hook na nag-eexit ng code 2 |
- Isulat ang bawat tuntuning sinusunod ng team mo o gustong masunod, isa kada linya, sa payak na salita.
- Sa bawat tuntunin, itanong: sapat na ba ang "halos palagi"? Kung oo, guidance ito. Kung hindi, tuntunin itong kailangang ipatupad.
- Ilagay ang guidance sa
CLAUDE.md, at panatilihing maikli ang file. Isama ang eksaktong command para sa test, typecheck at lint. - Sa bawat enforced na tuntunin, piliin ang mekanismo mula sa talahanayan at isulat: deny rule, hook, branch protection o CI.
- Gawin ang mga totoong file:
.claude/settings.jsonna may shared rules mo, naka-commit sa repo, at.claude/settings.local.jsonpara sa personal na override, itago sa Git. - Isulat ang
ENGINEERING.mdsa isang pahina na may tatlong seksyon: how we work, how we review, how we ship. - I-run ang
/statusat tingnan kung ayon sa inaasahan mo ang mga pinagmumulan ng settings. - Check: kaya ng bagong teammate na hanapin ang test command sa wala pang isang minuto, at maituturo mo ang eksaktong lugar kung saan ipinapatupad ang bawat "never" rule.
Videos by other creators on YouTube, for reference. They are not made by or affiliated with The Future Market.
Read the video script
[Host] "Ang poster sa dingding ay puwedeng balewalain. Ang kandado sa pinto, hindi."
[Text on screen: Guidance vs enforced] "May mga tuntuning guidance, tulad ng note sa CLAUDE.md. May mga enforced, tulad ng deny rule o required check."
[Screen: ang talahanayan ng mga tuntunin] "Isang tanong sa bawat tuntunin: sapat na ba ang halos palagi?"
[Text on screen: Keep CLAUDE.md short] "Kung hindi, ilipat ito mula sa notes papunta sa hook, permission rule o pipeline mo."
[Host] "Maikling notes, matibay na kandado, at isang pahinang mahahanap ng lahat."
Isulat ang listahan ng mga tuntunin ng team mo (hindi bababa sa sampu), ayusin ito sa guidance at enforced, at gawin ang mga file na may hawak ng bawat isa. Pagkatapos, isulat ang ENGINEERING.md sa isang pahina.
ClaudeStuck? Copy a ready-made prompt for Claude
Copy this, open Claude, paste it, and Claude will walk you through the lesson step by step.
For a grown-up: Claude is for adults (18+). Copy this, paste it into Claude, and use the answer to explain the lesson to your child.
I'm learning "AI Engineering Practice: mag-ship at mag-maintain ng software na binuo ng AI" on The Future Market. Lesson 1: "Engineering standards: sabihin nang isang beses, ipatupad kung saan mahalaga". What the lesson teaches: - Hinahati ng best-practices page ng Claude Code ng Anthropic ang mga instruksyon sa dalawang uri. Ang guidance (prompt mo, CLAUDE.md, skills) ay binabasa ng model, na "usually follows" ito pero hindi sapilitan. Ang mga enforced na tuntunin (hooks, permission rules, managed settings, tests, CI) ay ipinapatupad ng Claude Code o ng pipeline mo at hindi nakadepende sa pasya ng model. - Payo ng docs: kung patuloy mong dinadagdagan ng diin ang isang linya sa CLAUDE.md at hindi pa rin ito nasusunod ni Claude, ang linyang iyon ay nararapat sa hook. Totoo rin ang kabaligtaran: kung may mga hook ka para sa mga bagay na kagustuhan lang, burahin ang mga iyon at hayaang magpasya si Claude. - Nilo-load ang CLAUDE.md sa bawat session, kaya bawat linya ay kumakain ng kaunting atensyon sa bawat gawain. Itabi ito para sa mga bagay na hindi malalaman ni Claude mula sa code: ang eksaktong test, typecheck at lint commands, mga desisyong wala sa repo, at mga gotcha. Ang mga personal na kagustuhan ay nasa CLAUDE.local.md, na idinadagdag mo sa .gitignore. - Nagbabasa ang Claude Code ng settings mula sa ilang lugar. Ang scope ang nagpapasya kung sino ang naaapektuhan ng isang setting: user (~/.claude/settings.json, ikaw sa bawat project), shared project (.claude/settings.json, lahat sa repo kung na-commit), project local (.claude/settings.local.json, ikaw sa isang project) at managed (itinakda ng organisasyon; walang file mo ang makakapag-override rito). - Prayoridad, mula pinakamataas: managed settings, command-line --settings, project local, shared project, user. Ang mga list setting tulad ng permissions.allow ay nagsasama-sama sa mga file sa halip na nagpapalit. - May mga key na hindi kailanman umiiral mula sa file na naka-commit sa repo, at ang ilan, tulad ng allow rules, ay naghihintay hanggang pagkatiwalaan ng bawat teammate ang folder. Ang deny at ask rules ay umiiral agad. I-run ang /status para makita kung aling mga pinagmumulan ng settings ang na-load. - Kapaki-pakinabang lang ang mga standard kung nahahanap at nagagamit ng mga tao. Sumulat ng isang maikling engineering standards file (tinatawag natin itong ENGINEERING.md sa course na ito) at i-link mula sa CLAUDE.md. The exercise I'm working on: Isulat ang listahan ng mga tuntunin ng team mo (hindi bababa sa sampu), ayusin ito sa guidance at enforced, at gawin ang mga file na may hawak ng bawat isa. Pagkatapos, isulat ang ENGINEERING.md sa isang pahina. I'm stuck. Please: 1. Explain the main idea in plain, simple words with one everyday example. 2. Walk me through the exercise one small step at a time. Ask me what I've done so far before giving the next step. 3. Don't just give me the final answer. Help me do it myself, and check my work when I share it.
I'm a parent helping my child (about 8 years old) with a lesson called "Engineering standards: sabihin nang isang beses, ipatupad kung saan mahalaga" from the course "AI Engineering Practice: mag-ship at mag-maintain ng software na binuo ng AI".
Here's what the lesson says:
Ang kusina ng restaurant ay may ilang tuntunin sa dingding ("maghugas ng kamay") at ilang tuntuning nakapaloob sa kagamitan (namamatay ang oven kapag binuksan ang pinto). Ang poster sa dingding ay puwedeng makalimutan. Ang built-in na kandado ay hindi. Ang magagandang engineering standards ay gumagamit ng pareho, at alam nila kung aling tuntunin ang nararapat saan.
The activity:
Isulat ang listahan ng mga tuntunin ng team mo (hindi bababa sa sampu), ayusin ito sa guidance at enforced, at gawin ang mga file na may hawak ng bawat isa. Pagkatapos, isulat ang ENGINEERING.md sa isang pahina.
Please explain this so an 8-year-old understands: short sentences, a fun everyday example, and no hard words.
Then give me 3 simple questions I can ask my child to check they understood, and a way to do the activity together, one tiny step at a time.Sources
- Anthropic, Best practices for Claude Code: code.claude.com/docs/en/best-practices
- Anthropic, Settings files and precedence: code.claude.com/docs/en/settings
- Anthropic, Configure permissions: code.claude.com/docs/en/permissions
Review pipeline para sa code na hindi mo sinulat
This lesson is part of full access: every course and every level for one payment.
Mga test bilang gate, at pagsusuri sa mga test mismo
This lesson is part of full access: every course and every level for one payment.
Mga security check para sa code na tinulungan ng AI
This lesson is part of full access: every course and every level for one payment.
Claude Code sa mga script at CI, may mga limitasyon
This lesson is part of full access: every course and every level for one payment.
Mag-ship nang paunti-unti at panatilihing maaalagaan
This lesson is part of full access: every course and every level for one payment.
Mamuno sa maliit na team at idokumento ang workflow
This lesson is part of full access: every course and every level for one payment.
Final project
This lesson is part of full access: every course and every level for one payment.
Quiz
Ano ang pagkakaiba ng guidance at enforced na tuntunin?
Ang guidance (prompt o CLAUDE.md) ay binabasa ng model, na kadalasang sumusunod. Ang enforced na tuntunin (hook, deny rule, branch protection o CI) ay ipinapatupad ng tool o pipeline anuman ang pasya ng model.
Saan dapat nakalagay ang tuntuning "huwag basahin ang .env"?
Sa permissions deny rule (at sa sandbox para sa mas matibay na limitasyon), hindi lang sa CLAUDE.md.
Inaaprubahan o hinaharang ba ng AI code review ang pull request?
Hindi. Nag-iiwan ito ng mga natuklasan, at nasa tao ang desisyong mag-merge.
Bakit binabasa ng Code Review ang REVIEW.md mula sa base branch at hindi mula sa pull request?
Para hindi mabago ng pull request ang mga tuntuning ginagamit sa pag-review sa sarili nito.
Ano ang ginagawa ng CODEOWNERS file?
Pinapangalanan nito ang mga tao o team na responsable sa mga bahagi ng code, na hinihingan ng review sa mga pagbabago sa mga file na iyon.
Ano ang mutation check?
Sadyaing baguhin nang bahagya ang code at tingnan kung may bumabagsak na test. Kung pumapasa pa rin ang mga test, masyado silang mahina.
Paano mo gagawing hinaharang ng bumabagsak na test ang merge?
Patakbuhin ang mga test sa CI at i-on ang required status checks sa branch protection.
Anong mga babalang senyales ang dapat hanapin ng human reviewer sa diff na isinulat ng AI?
Mga hindi inaasahang file, binura o pinahinang test, test na binago para bumagay sa bug, bagong dependency, hard-coded na lihim at code na walang makapagpaliwanag.
Ano ang ginagawa ng push protection?
Hinaharang nito ang mga push na may supported na lihim bago pa makarating sa repository.
Pangalanan ang tatlong limitasyong itinatakda mo sa unattended na Claude Code run.
Halimbawa maikling listahan ng allowed tools, dontAsk permission mode, limitasyon sa turn o budget, at timeout ng workflow.
Bakit gagamit ng --bare sa mga script at CI?
Nilalaktawan nito ang awtomatikong nahahanap na hooks, plugins, MCP servers at CLAUDE.md, kaya pareho ang ginagawa ng run sa bawat makina.
Paano mo babawiin ang na-ship nang commit at pananatilihin ang history?
Gamitin ang git revert, na gumagawa ng bagong commit na bumabawi sa naunang isa.
Final exam
This lesson is part of full access: every course and every level for one payment.
Certificate
This lesson is part of full access: every course and every level for one payment.