dora is a CLI tool that provides AI agents with fast, structured code intelligence. It replaces grep/find/glob with pre-computed aggregates, reducing token usage and improving efficiency. Operations teams benefit from quicker code navigation and context understanding, integrating with tools like Sourcegraph and SQLite.
git clone https://github.com/butttons/dora.gitdora is a CLI tool that provides AI agents with fast, structured code intelligence. It replaces grep/find/glob with pre-computed aggregates, reducing token usage and improving efficiency. Operations teams benefit from quicker code navigation and context understanding, integrating with tools like Sourcegraph and SQLite.
1. **Install dora**: Ensure dora is installed and available in your PATH. Run `dora --version` to verify. 2. **Run the analysis**: Execute the prompt template in your terminal or AI tool, replacing `[CODEBASE_PATH]` and `[SPECIFIC_FUNCTION_NAME]` with your repository path and target function. For example: ```bash dora analyze src/ --function processTransaction --context 3 ``` 3. **Refine results**: Use the `--context` flag to adjust how many lines of context are included around each call (default is 2). 4. **Export for review**: Pipe the output to a file for further analysis: ```bash dora analyze src/ --function processTransaction --context 3 > transaction_calls.txt ``` 5. **Integrate with tools**: Use the results in tools like Sourcegraph to jump directly to the identified lines or set up alerts for changes in these files. **Tips:** - For large repositories, narrow the search by specifying subdirectories (e.g., `src/services/`). - Combine with `dora grep` for broader pattern matching if needed. - Use the `--json` flag to get machine-readable output for further processing.
No install command available. Check the GitHub repository for manual installation instructions.
git clone https://github.com/butttons/doraCopy the install command above and run it in your terminal.
Launch Claude Code, Cursor, or your preferred AI coding agent.
Use the prompt template or examples below to test the skill.
Adapt the skill to your specific use case and workflow.
Use dora to analyze the [CODEBASE_PATH] repository and identify all functions that call [SPECIFIC_FUNCTION_NAME]. For each caller, extract the file path, line number, and the context of the call (e.g., 3 lines before/after). Format the results as a structured table with columns: File Path, Line Number, Context, and Caller Function Name. Prioritize results by most recently modified files first.
Here’s the analysis of calls to `processTransaction()` in the `payment-gateway` repository as of 2024-05-20. The results are ordered by most recently modified files:
| File Path | Line Number | Context | Caller Function Name |
|-------------------------|-------------|---------------------------------------------------------------------------------------------|-----------------------------|
| src/handlers/api.js | 42 | ```javascript
const result = await processTransaction(
transactionData,
{ retryPolicy: 'exponential' }
);
``` | handlePaymentRequest |
| src/utils/validators.js | 187 | ```javascript
if (!isValidTransaction(transaction)) {
processTransaction(transaction, { dryRun: true });
}
``` | validateTransaction |
| src/services/ledger.js | 315 | ```javascript
const ledgerEntry = processTransaction(
transaction,
{ includeMetadata: true }
);
``` | updateLedger |
| src/legacy/v1/bridge.js | 78 | ```javascript
processTransaction(legacyData, { version: '1.0' });
``` | legacyBridgeHandler |
**Key Insights:**
- The `api.js` and `validators.js` files are the most frequently modified, suggesting active development in these areas.
- The `ledger.js` file uses `processTransaction` with metadata, which may be critical for auditing.
- The `bridge.js` file in the legacy directory appears to be a compatibility layer, indicating potential technical debt.
**Recommendations:**
1. Review the `api.js` handler for potential optimizations in transaction processing.
2. Investigate the `validators.js` file for edge cases where `processTransaction` is called with `dryRun: true`.
3. Consider refactoring the `bridge.js` file to reduce dependency on `processTransaction` in legacy code.Achieve ultra-fast JavaScript execution with built-in bundling and TypeScript support.
IronCalc is a spreadsheet engine and ecosystem
ITIL-aligned IT service management platform
Customer feedback management made simple
Enterprise workflow automation and service management platform
Automate your spreadsheet tasks with AI power
Take a free 3-minute scan and get personalized AI skill recommendations.
Take free scan