Courses / Design a Software Factory for Your Coding AgentsFreeLesson 5 of 107:34

Boundary, Context and Skills

Set where the agent may write, give it your stack and style so it stops guessing, and write skills for the libraries and internal patterns it was never trained on. Skills also keep six engineers' agents writing in one flavor.

Play Boundary, Context and Skills

Chapters

  1. Boundary
  2. Context
  3. Skills
  4. Code is not enough context
  5. When flavors mix

Transcript

Boundary

now it edited your auth directory or payment directory. Then what you exactly needed in that six layer, you need to set that boundary. You need to clearly create that boundary. When you create that boundary, then it won't hallucinate.

Context

Then it picks a wrong stack. For example, your favorite stack is TypeScript Superbase or something like that, and it picked something like Python, MongoDB and some other stack. highly that is because of context. You didn't provide enough context. What is the exact stack I want and how I want what flavor I want, what is the standard or style guide I want. If you provide that context, then it will able to follow that. And if you create boundary, like hey, never create a single file script for 500 lines or one 1800 lines. Whenever there is something you created, then split those files by functions and you know properly name those files in kebab case or capital case, or whatever case you want, and whatever logic you want, if you create those as context and boundary, then you will be able to achieve that deterministically.

Skills

Now, even after that, you need to provide your skills. For example, when you are actually coding for web, in most cases, these coding agents are well trained with web. so that means they are able to write TypeScript, JavaScript, Python very well. But when you are writing a game, for example, using Phaser or 3.js, probably they might be trained with our older model, and your new API might have breaking changes in there, like phaser 0.3 might be very different from phaser 0.6. Now you need to provide exact skills of how to use it. For example, you might be creating Mermaid diagram or excali draw diagrams. You need to provide a clear-cut skills of this is the latest, and this is how you can create, you can edit, you can create an arrow and all those things. So automatically, whenever there is a drawing which has been asked, it will always find the skills and it will be able to write that. It doesn't mean you need to provide skills only for you know external libraries, even for internal libraries. For example, you can just say to Claude Code or you know, your codex that hey, create a queue and for so and so purpose. then how does it know that that queue needs to have this scaffolding and all those things? You can create a skill like what is how we create our queue and what are all the scaffolding and what are all the testing and pieces what we do, then automatically it will be using that skill and it will be able to follow the instruction properly. So that is where the skill gets into you know skill gets very very useful, and then execution.

Code is not enough context

then the context from where the context comes from, of course. Most of the coding agents get your context from the actual source itself. Your code is the context, the coding agents are very, very intelligent enough to intelligently build what that code does and so on. But when you are creating a new repository, you need to provide that context. Okay, I want bun, I want SQLite, I want you know, these are the tests that need to pass, and these are the things, rules that need to be run. All these things you need to provide as a context. So as it matures, you know, you can't keep code as just the only context because then it can code anyway. What you exactly want in terms of standards, it won't follow because you having provide a flavor. I want my code to be like this, I want my file to be like this, I want my file names to be like this. If you don't provide those in your skills or in your context, then it will create whatever way it wants, and it will be able to generate junks of code which might not be maintainable after six months or even after two months' time. So that is where you need to create these context in first place, then it will become much more fruitful and much more easier to maintain, especially when you are working alone, then it is not going to be a huge trouble because you will focus only on the output. Okay, the output is there, and then you you might have a couple of skills which is very specific to security. Hey, check OWASP 10 top 10 security, and is there any vulnerability and you need to clean those off in this hook and it will be able to handle it.

When flavors mix

But what will happen? You have an engineering team with six engineers working in the same project. then engineer one writes a very different style of code, and engineer two writes very different style of code. Of course, they are not going to write it, but their agent is going to write it, then automatically the flavor is going to get mixed. One person will write a huge code comment, another person, another agent will write very small code comment. Now it becomes very, very hard to manage, and the context becomes very much corrupted. So that is something you need to need to overcome, and that is where a skill will help you to overcome. Like when you are actually using a skill, automatically you can provide you know a CSV export will happen this way. how the you know how our feature flag works or how our payment gateway works and how we will upgrade, downgrade, and all those things you can create your playbook through the internal skills and also external skills in terms of you know how you can upgrade Dependabot alert or so on, then automatically these agents will pick okay what are all the skills which is available and it will find okay, these these skills are available exclusively for this task. Then it will pin okay. Okay, I will be using front-end design since this task is related to UX UI and front-end design, they are using something called matrix and matrix is the internal library which has a button flavor like this, or you know, layout like this, then automatically it will follow the same guide and it will use the same design guide and it will be able to generate the code accordingly. So you fix once you create that skill and provide that skill, whatever coding agent you use. in your local machine, you can use code in your VM, you can use Codex, you will be able to provide that skill and able to create that.

This lesson is cut from the free Lightning session Design a Software Factory for Your Coding Agents. The Live Labs build the same system with you, free, on Thursdays: see the Live Labs.