# Advanced Topics

#### Building Your Own Extensions

Extensions in Spec-Kit are lightweight Node.js scripts that hook into the CLI lifecycle events (e.g., `pre-plan`, `post-implement`). By writing a custom extension, you can integrate Spec-Kit with your company's internal Jira boards, automatically converting Jira tickets into `spec.md` updates, or triggering CI/CD pipelines upon task completion.

#### Pro Tips: Best Practices for "Vibe-Free" Coding

* Avoid Vibe Coding: Resist the urge to open an empty file and ask the AI to "build a login page." This bypasses constraints and leads to technical debt. Always start at Step 2 (Specification).
* The Importance of the Constitution: Your constitution is your defense against hallucinated dependencies. If you do not explicitly forbid certain anti-patterns, the AI will eventually use them. Treat the constitution as a living document.
* Using Presets Effectively: Combine global presets with local overrides. Use a community standard for Next.js, but append your internal corporate security guidelines in your local configuration.

#### Architecture Patterns with Spec-Kit

When building microservices or monorepos, use Hierarchical Specs. Define a global `constitution.md` at the monorepo root for shared language constraints (e.g., "Use TypeScript"), and place localized `spec.md` and `plan.md` files within individual package directories to scope the AI's context strictly to the service it is building.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://shankar-lab.gitbook.io/mylearning/github-spec-kit/advanced-topics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
