I believe AI will be another service like the internet or a cell phone, and it's important to use it correctly by adding the right context, being aware of token usage, and following your own process.
For this reason some months ago I finished different courses about how to use Claude:
- A course with Ivan Davidov and a small contribution from Debbie O'Brien, on setting up agents with Playwright.
- The and checked his courses on linkedin.
And I am taking the Mosh Hamedani course includes an example that restricts access with JavaScript, but for practice I also created a hook to prevent access with a Python script.
To create the hook:
1) Create the scripts with the rule or command that you want to execute. I created a hooks folder with:
read_hook.js: This JS script checks if the file is .env and restricts access, but allows access to .env.example because this is the example for others; qa can create the .env file.
bash_env_check.py: This is a Python file with the same restriction, and I decided to check the same restriction with Python, but now to restrict reading the .env file with commands.
2) Add the hook in the .claude/settings.json file.
- Add a hooks key
- Add the event that triggers the hook. For example, the PreToolUse event is executed before each tool execution and can prevent the tool from executing any action.
- Add the matcher; in this case, it will be "Read|Edit" to prevent Clause from reading or editing the .env file
- Add the hooks key as:
CODEtype: command
command: "node ./hooks/read_hook.js"
statusMessage: "Checking file access..."
CODE{
"permissions": {
"allow": ["mcp__playwright", "Bash(playwright-cli*)", "Bash(npx tsc --noEmit*)"],
"deny": []
},
"hooks": {
"PreToolUse": [
{
"matcher": "Read|Edit",
"hooks": [
{
"type": "command",
"command": "node ./hooks/read_hook.js",
"statusMessage": "Checking file access..."
}
]
},
"PostToolUse": []
}
}
If you request access you will see an error
I am not a fan of BDD, so I didn't follow the BDD syntax for the user story. I've worked with and without BDD.
Description:
The admin user needs to register the different servers used to connect to the ERP to see some reports from the Firebird database.
Server Fields
Id - Server ID (numeric auto-increment)
Key – Server key (unique identifier)
Name – Server name
URL – URL to connect to the ERP API
Active – Whether the server is enabled
Scope: view the registered servers, search by name or key, add, edit, delete, and mark a server active/inactive.
Design
It's important to review the user stories and create test cases at the start of the sprint to prevent gaps before the developer starts coding so the developer can generate unit tests and know the test cases can prevent bugs.
I prefer creating small skills for specific tasks rather than a general skill.
For manual test cases I created these skills:
read-testcase: Read Azure DevOps test case by ID
manual-test: To create the UI and API test cases, read the user story, ask for any gaps in the user story, and include a preview of the test before creating.
First you need to add the Azure DevOps MCP on Claude with an Entra Id account. And add your Azure DevOps Project
I created an entra Id user
Create claude actions .yml files to tag claude on issues or review your PR.
You can include a .yml file to allow Claude to tag your GitHub issues or to review your PR automatically.
You need to
- Give Claude access to your GitHub Repo
- Upload a .yml file with the action that you want Claude to complete. You can see the different yml files on their review to get the PR review comment.
The PR review is part of your Claude usage. In my experience at one of my jobs, some suggestions weren't good. The review suggested changing code that will be fixed in other user stories, or that flagged code as incorrect due to a lack of context, even though the context was in the PR description. You can reply with suggestions, for example: , which is focused on PR review. You can see both PR reviews here: https://github.com/apis3445/TestingDojo/pull/15
Now the disadvantage that I found:
- LLM context memory is limited and needs to load all the info every time because if you restore one session, there is a limit and it needs to compress the context.
- The Claude Skilljar free courses are outdated; for example, one course explains commands, but commands were integrated into skills, or the PR review changed.
- LLMs don't say I don't know they try to guess and generate code like the correct solution, and if it's wrong, they try the same idea instead of asking. Sometimes I get better results after doing manual research.
- And with large files at least Copilot deleted all the code trying to add one code change, so with larges files around 2,300 lines struggle to update content.
You can use the mcp context7 to get up-to-date docs for AI agents and for example for angular, google added claude skills but there is still a gap to LLM don't write deprecated code.
Create skill or automate your flows require continuous feedback so it's important that improve the skills and be aware of the token usage.
Thanks for reading so don't hesitate to ask questions or share your feedback. If this helped you, feel free to share it with the community.
↗ Original-Artikel auf dev.to lesenVollständiger Original-ArtikelDen kompletten Beitrag mit allen Details direkt auf dev.to lesen.
SOCIAL SHARE CARD GENERATOR