{"slug":"greedychipmunk-angularjs-unit-testing","name":"angularjs-unit-testing","description":"Use this skill for AngularJS unit testing, maintenance, and migration tasks","long_description":"---\nname: angularjs-unit-testing\ndescription: Use this skill for AngularJS unit testing, maintenance, and migration tasks\n---\n\n# AngularJS Unit Testing Skill\n\n## Overview\n\nThis skill specializes in writing, refactoring, and maintaining high-quality unit tests for AngularJS (1.x) applications. It covers controllers, services, filters, directives, HTTP mocking, promises, and dependency injection — everything you need to keep an AngularJS codebase well-tested and reliable.\n\n> **Note**: AngularJS reached end-of-life in December 2021. It receives only critical security fixes. New projects should use Angular 19+. For teams maintaining AngularJS codebases, this skill provides the latest testing patterns, tooling, and migration guidance. See [Migration Path](#migration-path-angularjs--angular) at the bottom of this document.\n\n## Skill Capabilities\n\n### Core Testing Competencies\n\n- **Controllers**: Write tests for controller logic, state management, and event handling\n- **Services**: Test factory/service dependencies, HTTP calls, and business logic\n- **Filters**: Validate filter transformations and edge cases\n- **Directives**: Test directive compilation, linking, and DOM manipulation\n- **HTTP Mocking**: Mock HTTP calls using `$httpBackend` (Jasmine/Karma) or MSW/fetch mocks (Jest)\n- **Promises & Async**: Handle `$q`, deferred objects, and `$timeout`\n- **Dependency Injection**: Test with mocked and real dependencies\n- **Scope Management**: Test scope lifecycle, watchers, and event broadcasting\n- **Coverage Analysis**: Generate and interpret code coverage reports\n- **Test Organization**: Structure tests following best practices and maintainability principles\n- **Framework Choice**: Jest for new work and hybrid repos; Jasmine/Karma for existing suites\n\n### Testing Patterns\n\nThis skill implements the following testing patterns:\n\n1. **AAA Pattern (Arrange-Act-Assert)**\n   - Organize tests with clear setup, execution, and verification phases\n   - Improves readability and maintainability\n\n2. **Mocking & Spying**\n   - Use Jasmine spies or Jest mocks to mock functions and verify calls\n   - Mock HTTP responses and service dependencies\n   - Simulate user interactions\n\n3. **Test Fixtures**\n   - Create reusable test data and helper functions\n   - Use beforeEach/afterEach for common setup/teardown\n   - Reduce test duplication\n\n4. **Edge Case Testing**\n   - Test boundary conditions, empty states, and error scenarios\n   - Validate error handling and graceful degradation\n   - Test asynchronous operations and race conditions\n\n5. **Snapshot Testing** (Jest)\n   - Capture expected component output\n   - Detect unintended changes in UI rendering\n\n6. **Deterministic Async**\n   - Prefer fake timers, controlled promises, and isolated state over timing-sensitive assertions\n\n## Testing Frameworks & Test Runners\n\n### Jasmine (Legacy Default)\n\nJasmine remains the safest choice when you are preserving an existing AngularJS + Karma suite.\n\n**Key Concepts**:\n- `describe()`: Group related tests into a test suite\n- `it()`: Define individual test cases\n- `expect()`: Create assertions\n- `beforeEach()` / `afterEach()`: Setup and teardown hooks\n- `spyOn()` / `jasmine.createSpy()`: Mock functions and track calls\n\n**Setup**:\n```bash\nnpm install --save-dev jasmine karma karma-jasmine karma-chrome-launcher\n```\n\n**Use when**:\n- You are maintaining an existing Jasmine/Karma suite\n- You want the smallest possible change set for legacy AngularJS code\n\n### Jest (Recommended)\n\nJest is the modern default for AngularJS test maintenance and migration work. It runs tests in parallel, has stronger mocking APIs, supports snapshots, and includes built-in coverage reporting.\n\n**Key Concepts**:\n- `describe()`: Group related tests\n- `test()` or `it()`: Define individual test cases\n- `expect()`: Create assertions\n- `beforeEach()` / `afterEach()`: Setup and teardown hooks\n- `jest.fn()`: Create mock functions\n- `jest.spyOn()`: Spy on existing methods\n- `jest.mock()`: Mock modules\n\n**Setup**:\n```bash\nnpm install --save-dev jest jest-preset-angular angular-mocks\nnpm install @angular/core\n```\n\n**Jest Configuration** (`jest.config.js`):\n```javascript\nmodule.exports = {\n  preset: 'jest-preset-angular',\n  testEnvironment: 'jsdom',\n  setupFilesAfterEnv: ['<rootDir>/setup-jest.js'],\n  transform: {\n    '^.+\\.js$': 'babel-jest'\n  },\n  collectCoverage: true,\n  collectCoverageFrom: ['src/**/*.js', '!src/**/*.spec.js']\n};\n```\n\n**Use when**:\n- You want faster feedback from parallel execution\n- You need better mocking, snapshots, and coverage out of the box\n- You are preparing an AngularJS codebase for an Angular migration\n\n### Karma (Legacy Runner)\n\nKarma is the legacy browser test runner traditionally paired with Jasmine. It is still usable for existing suites, but it has seen no major releases since 2021 and should not be the basis for new investment.\n\n**Configuration**:\n- `karma.conf.js`: Main configuration file\n- Specifies browser environment, files to load, and plugins\n- Supports code coverage reporting and CI integration\n\n## Jest Migration Guide\n\nUse these steps when moving an AngularJS test suite from Jasmine/Karma to Jest:\n\n1. **Install the core tooling**\n   ```bash\n   npm install --save-dev jest jest-preset-angular angular-mocks\n   npm install @angular/core\n   ```\n   Add `@angular/core` when the repo is hybrid or actively migrating toward Angular.\n\n2. **Create a Jest setup file**\n   - Add `setup-jest.js` or `setup-jest.ts`\n   - Load `angular`, `angular-mocks`, and any shared test polyfills there\n\n3. **Configure Jest for AngularJS files**\n   - Use `jest.config.js` with `testEnvironment: 'jsdom'`\n   - Add a transform for legacy JavaScript sources\n   - Keep template or DOM-specific setup in the Jest bootstrap file\n\n4. **Load AngularJS modules in Jest**\n   ```javascript\n   beforeEach(() => {\n     require('angular');\n     require('angular-mocks');\n     angular.mock.module('myApp');\n   });\n   ```\n\n5. **Migrate spies and stubs**\n   - `spyOn(obj, 'method')` → `jest.spyOn(obj, 'method')`\n   - `jasmine.createSpy()` → `jest.fn()`\n   - `jasmine.createSpyObj()` → `jest.fn()` or explicit mock objects\n\n6. **Replace `$httpBackend` where practical**\n   - Prefer `fetch` mocks or MSW for new Jest tests\n   - Keep `$httpBackend` only for legacy tests that are expensive to rewrite immediately\n\n7. **Reset state between tests**\n   - Use `jest.clearAllMocks()` / `jest.resetAllMocks()`\n   - Recreate AngularJS modules and services in `beforeEach()`\n\n## Handling Environmental Flakiness\n\nLegacy AngularJS suites often fail because the environment is unstable, not because the code is broken.\n\n**Common sources of flakiness**:\n- Timing issues and race conditions\n- Shared state between tests\n- Browser environment differences\n- Network-dependent tests and real external services\n- Time zone, locale, and date-sensitive logic\n\n**Deterministic test patterns**:\n- Use fake timers for scheduled work and debounce/throttle logic\n- Keep async work controlled with explicit promise resolution and digest flushing\n- Reset shared state, mocks, and module caches in `afterEach()`\n- Avoid real browser/network dependencies in unit tests\n- Prefer fixed test data over generated or time-based values\n\n**js-env-sanitizer pattern**:\n- Snapshot and restore environment-dependent globals around each test\n- Isolate `window`, `document`, `localStorage`, `Date`, `Math.random`, feature flags, and DOM mutations\n- This is especially useful in long-lived AngularJS suites where hidden environment coupling causes intermittent failures\n\n## Test Pyramid Guidance for Legacy Codebases\n\nLegacy AngularJS codebases often have an inverted test pyramid: too many end-to-end tests and too few unit tests.\n\n**Recommended shape**:\n- **Base**: many fast unit tests for controllers, services, filters, and directives\n- **Middle**: fewer integration tests for module wiring, routing, and API boundaries\n- **Top**: a small number of end-to-end tests for critical user journeys only\n\n**Guidance**:\n- Shift coverage toward unit tests first\n- Keep integration tests as the middle layer, not the base\n- Use e2e tests sparingly because they are slower and more environment-sensitive\n\n## Test Structure\n\n### Jasmine Test Structure (Legacy Default)\n\nAll Jasmine tests follow this standard structure:\n\n```javascript\ndescribe('Component Name', function() {\n  var componentUnderTest, dependencies;\n\n  beforeEach(module('myApp'));\n\n  beforeEach(inject(function($injector) {\n    componentUnderTest = $injector.get('ComponentName');\n    dependencies = $injector.get('DependencyName');\n  }));\n\n  afterEach(function() {\n    // Cleanup code\n  });\n\n  describe('Functionality Group', function() {\n    it('should do something specific', function() {\n      // Arrange\n      var input = 'test';\n\n      // Act\n      var result = componentUnderTest.method(input);\n\n      // Assert\n      expect(result).toBe('expected');\n    });\n  });\n});\n```\n\n### Jest Test Structure (Recommended)\n\nJest tests follow a similar structure with modern mocking and cleaner teardown:\n\n```javascript\ndescribe('Component Name', () => {\n  let componentUnderTest;\n  let dependency;\n\n  beforeEach(() => {\n    jest.clearAllMocks();\n    // Setup code or mock initialization\n    dependency = { method: jest.fn() };\n    componentUnderTest = require('./component');\n  });\n\n  afterEach(() => {\n    // Cleanup code\n  });\n\n  describe('Functionality Group', () => {\n    test('should do something specific', () => {\n      // Arrange\n      const input = 'test';\n\n      // Act\n      const result = componentUnderTest.method(input, dependency);\n\n      // Assert\n      expect(result).toBe('expected');\n    });\n  });\n});\n```\n\n**Key Differences**:\n- Jest uses `jest.fn()` / `jest.spyOn()` instead of Jasmine spies for modern test code\n- Jest uses `test()` or `it()` (both work)\n- Jest auto-discovers `.spec.js` and `.test.js` files\n- Jest provides built-in snapshot testing and code coverage\n\n## Best Practices\n\n### 1. Test Organization\n- One test file per component (e.g., `controller.spec.js` for `controller.js`)\n- Organize tests into logical groups using `describe()`\n- Use meaningful test names that describe expected behavior\n\n### 2. DRY Principle (Don't Repeat Yourself)\n- Extract common setup into `beforeEach()` blocks\n- Create reusable test data fixtures\n- Use helper functions to reduce duplication\n\n### 3. Test Independence\n- Each test should be independent and runnable in any order\n- Clean up resources in `afterEach()`\n- Avoid shared state between tests\n\n### 4. Realistic Mocks\n- Mock external dependencies realistically\n- Use actual data structures when possible\n- Avoid overly simplified or unrealistic mocks\n\n### 5. Comprehensive Coverage\n- Aim for 80%+ code coverage\n- Test happy paths, edge cases, and error scenarios\n- Test async operations and race conditions\n\n### 6. Performance\n- Keep tests fast\n- Use in-memory mocks instead of real HTTP requests\n- Avoid unnecessary database operations\n\n### 7. Maintainability\n- Write tests that are easy to understand\n- Use the AAA pattern for clarity\n- Document complex test logic with comments\n- Refactor tests when the component changes\n\n## Common Testing Scenarios\n\n### Testing Controllers\n\n```javascript\ndescribe('UserController', function() {\n  var $scope, controller;\n\n  beforeEach(module('myApp'));\n  beforeEach(inject(function($controller, $rootScope) {\n    $scope = $rootScope.$new();\n    controller = $controller('UserController', {\n      $scope: $scope\n    });\n  }));\n\n  it('should initialize with default values', function() {\n    expect($scope.users).toBeDefined();\n  });\n\n  it('should load users on init', function() {\n    expect($scope.users.length).toBeGreaterThan(0);\n  });\n});\n```\n\n### Testing Services\n\n```javascript\ndescribe('UserService', function() {\n  var userService, $httpBackend;\n\n  beforeEach(module('myApp'));\n  beforeEach(inject(function(_UserService_, _$httpBackend_) {\n    userService = _UserService_;\n    $httpBackend = _$httpBackend_;\n  }));\n\n  afterEach(function() {\n    $httpBackend.ver","tagline":"Use this skill for AngularJS unit testing, maintenance, and migration tasks","category":"coding-agents","tags":["agent-skill"],"author":"greedychipmunk","verified":false,"attribution":{"status":"registry_indexed","statusLabel":"Registry indexed","shortLabel":"REGISTRY INDEXED","sourceLabel":"recursive skill source sync","sourceDetail":"greedychipmunk/agent-skills","creatorName":"greedychipmunk","creatorUrl":"https://github.com/greedychipmunk","sourceUrl":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","indexedBy":"OpenAgentSkill community index","claimUrl":"https://www.openagentskill.com/skills/greedychipmunk-angularjs-unit-testing#claim-this-skill","claimCta":"Claim this skill","trustNote":"This listing was indexed from public sources and is not marked official until a maintainer claim is approved.","publicNote":"Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals."},"stats":{"stars":14,"forks":1,"verified_installs":0,"successful_runs":0,"total_outcomes":0,"rating":0,"review_count":0,"quality_score":31.93},"quality":{"score":59,"tier":"promising","label":"Promising","summary":"Useful candidate, but compare it with alternatives before adopting.","signals":[{"label":"GitHub stars","value":"14","tone":"neutral"},{"label":"Freshness","value":"1d ago","tone":"positive"},{"label":"Install ready","value":"Yes","tone":"positive"},{"label":"License","value":"MIT","tone":"neutral"}],"warnings":["Low GitHub adoption signal","The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete."]},"trust":{"version":"trust-score-v5","score":45,"base_score":57,"outcome_confidence":0,"tier":"risk","label":"Do not auto-install","summary":"Trust Score v5 found insufficient evidence for agent installation. Treat this as discovery material, not an executable recommendation.","recommendedAction":"Choose a stronger alternative or inspect the source manually before any install attempt.","decision":{"install_policy":"human_review_before_install","auto_install_allowed":false,"human_review_required":true,"sandbox_first":true,"agent_action":"Compare alternatives before installing.","reasoning":["45/100 Trust Score v5","57/100 Trust Score v4 baseline","Needs more real agent outcomes before unattended install","Install path is available","High review required"],"review_required_when":["The workspace contains production secrets, payments, private customer data, or irreversible actions.","The install command requests shell, network, credential, database, or broad filesystem access.","Outcome evidence is missing, recently failed, or required human review.","Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"]},"dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":30,"weight":0.13,"status":"fail","detail":"14 GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":32,"weight":0.08,"status":"fail","detail":"14 stars, 1 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"1d since push"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"MIT"},{"id":"documentation","label":"README/SKILL.md completeness","score":70,"weight":0.14,"status":"info","detail":"Public metadata needs stronger README/SKILL.md context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":28,"weight":0.12,"status":"fail","detail":"command execution surface, credential or environment access"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":18,"weight":0.07,"status":"fail","detail":"secrets or environment access, shell or command execution"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test"},{"id":"review_status","label":"Review status","score":66,"weight":0.05,"status":"info","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"fail","label":"GitHub adoption","detail":"14 GitHub stars"},{"status":"fail","label":"Stars/forks activity","detail":"14 stars, 1 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"1d since push"},{"status":"pass","label":"License clarity","detail":"MIT"},{"status":"info","label":"README/SKILL.md completeness","detail":"Public metadata needs stronger README/SKILL.md context"},{"status":"fail","label":"Dependency/runtime risk","detail":"command execution surface, credential or environment access"},{"status":"pass","label":"Install availability","detail":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"fail","label":"Permission surface","detail":"secrets or environment access, shell or command execution"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test"},{"status":"info","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"info","label":"OpenAgentSkill usage","detail":"No local usage activity yet"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Install command has no obvious high-risk pattern","Outcome loop is ready but needs first real agent run"],"warnings":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","GitHub adoption: 14 GitHub stars","Stars/forks activity: 14 stars, 1 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution","No real agent outcome reports yet","Human review required before unattended installation"],"evidence":{"stars":"14 GitHub stars","repoActivity":"14 stars, 1 forks","lastPushed":"1d since push","license":"MIT","repository":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","install":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet","agentProvenScore":0,"outcomeConfidence":"0%","installPolicy":"human_review_before_install"},"installReadiness":{"ready":true,"command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","policy":"human_review_before_install","label":"Human review before install","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","1d since push","Financial domain: human review is required before use in a live investment workflow.","Trust Score v5 requires review or sandbox-only use before install."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"high","label":"High review required","notes":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"human_review_before_install","reason":"Compare alternatives before installing."},"outcome_loop":{"version":"openagentskill-agent-outcome-v3","required_after_install":true,"endpoint":"/api/agent/outcome","method":"POST","event_id_source":"feedback.event_id, install_receipt.resolve_event_id, or decision_packet.outcome_feedback.event_id","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"required_fields":["event_id","skill_slug","task"],"quality_fields":["task_success","output_quality","error_type","human_review_required","used_in_production","workspace","evidence_url","time_to_useful_ms"],"ranking_inputs_updated":["Trust Score v5 outcome confidence","Agent Proven Score","Resolve ranking task-fit evidence","Skill detail machine-readable metadata","Outcome leaderboard"]},"agent_contract":{"suited_tasks":["coding-agents","agent-skill"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"install_command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","trust_score":45,"trust_version":"trust-score-v5","risk_level":"high","do_not_use_when":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review"],"before_install":["Read the audit page and machine-readable metadata.","Confirm the install command, license, and permission surface fit the workspace.","Get explicit human approval or choose an alternative before installing."],"after_run":["Report the outcome to /api/agent/outcome using the resolve event id.","Include output_quality, workspace, human_review_required, and evidence_url when available.","Re-resolve before broad production rollout."]},"bestFor":["coding-agents","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review"],"knownRisks":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","GitHub adoption: 14 GitHub stars","Stars/forks activity: 14 stars, 1 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, credential or environment access"],"backward_compatible":{"trust_score_v4":{"version":"trust-score-v4","score":57,"tier":"risk","label":"High review required","summary":"Sparse or weak trust signals. Treat this as an experimental candidate."}}},"trust_score_v5":{"version":"trust-score-v5","score":45,"base_score":57,"outcome_confidence":0,"tier":"risk","label":"Do not auto-install","summary":"Trust Score v5 found insufficient evidence for agent installation. Treat this as discovery material, not an executable recommendation.","recommendedAction":"Choose a stronger alternative or inspect the source manually before any install attempt.","decision":{"install_policy":"human_review_before_install","auto_install_allowed":false,"human_review_required":true,"sandbox_first":true,"agent_action":"Compare alternatives before installing.","reasoning":["45/100 Trust Score v5","57/100 Trust Score v4 baseline","Needs more real agent outcomes before unattended install","Install path is available","High review required"],"review_required_when":["The workspace contains production secrets, payments, private customer data, or irreversible actions.","The install command requests shell, network, credential, database, or broad filesystem access.","Outcome evidence is missing, recently failed, or required human review.","Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"]},"dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":30,"weight":0.13,"status":"fail","detail":"14 GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":32,"weight":0.08,"status":"fail","detail":"14 stars, 1 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"1d since push"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"MIT"},{"id":"documentation","label":"README/SKILL.md completeness","score":70,"weight":0.14,"status":"info","detail":"Public metadata needs stronger README/SKILL.md context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":28,"weight":0.12,"status":"fail","detail":"command execution surface, credential or environment access"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":18,"weight":0.07,"status":"fail","detail":"secrets or environment access, shell or command execution"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test"},{"id":"review_status","label":"Review status","score":66,"weight":0.05,"status":"info","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"fail","label":"GitHub adoption","detail":"14 GitHub stars"},{"status":"fail","label":"Stars/forks activity","detail":"14 stars, 1 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"1d since push"},{"status":"pass","label":"License clarity","detail":"MIT"},{"status":"info","label":"README/SKILL.md completeness","detail":"Public metadata needs stronger README/SKILL.md context"},{"status":"fail","label":"Dependency/runtime risk","detail":"command execution surface, credential or environment access"},{"status":"pass","label":"Install availability","detail":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"fail","label":"Permission surface","detail":"secrets or environment access, shell or command execution"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test"},{"status":"info","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"info","label":"OpenAgentSkill usage","detail":"No local usage activity yet"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Install command has no obvious high-risk pattern","Outcome loop is ready but needs first real agent run"],"warnings":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","GitHub adoption: 14 GitHub stars","Stars/forks activity: 14 stars, 1 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution","No real agent outcome reports yet","Human review required before unattended installation"],"evidence":{"stars":"14 GitHub stars","repoActivity":"14 stars, 1 forks","lastPushed":"1d since push","license":"MIT","repository":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","install":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet","agentProvenScore":0,"outcomeConfidence":"0%","installPolicy":"human_review_before_install"},"installReadiness":{"ready":true,"command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","policy":"human_review_before_install","label":"Human review before install","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","1d since push","Financial domain: human review is required before use in a live investment workflow.","Trust Score v5 requires review or sandbox-only use before install."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"high","label":"High review required","notes":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"human_review_before_install","reason":"Compare alternatives before installing."},"outcome_loop":{"version":"openagentskill-agent-outcome-v3","required_after_install":true,"endpoint":"/api/agent/outcome","method":"POST","event_id_source":"feedback.event_id, install_receipt.resolve_event_id, or decision_packet.outcome_feedback.event_id","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"required_fields":["event_id","skill_slug","task"],"quality_fields":["task_success","output_quality","error_type","human_review_required","used_in_production","workspace","evidence_url","time_to_useful_ms"],"ranking_inputs_updated":["Trust Score v5 outcome confidence","Agent Proven Score","Resolve ranking task-fit evidence","Skill detail machine-readable metadata","Outcome leaderboard"]},"agent_contract":{"suited_tasks":["coding-agents","agent-skill"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"install_command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","trust_score":45,"trust_version":"trust-score-v5","risk_level":"high","do_not_use_when":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review"],"before_install":["Read the audit page and machine-readable metadata.","Confirm the install command, license, and permission surface fit the workspace.","Get explicit human approval or choose an alternative before installing."],"after_run":["Report the outcome to /api/agent/outcome using the resolve event id.","Include output_quality, workspace, human_review_required, and evidence_url when available.","Re-resolve before broad production rollout."]},"bestFor":["coding-agents","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review"],"knownRisks":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","GitHub adoption: 14 GitHub stars","Stars/forks activity: 14 stars, 1 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, credential or environment access"],"backward_compatible":{"trust_score_v4":{"version":"trust-score-v4","score":57,"tier":"risk","label":"High review required","summary":"Sparse or weak trust signals. Treat this as an experimental candidate."}}},"trust_score_v4":{"version":"trust-score-v4","score":57,"tier":"risk","label":"High review required","summary":"Sparse or weak trust signals. Treat this as an experimental candidate.","recommendedAction":"Use only in a controlled test environment until missing trust signals are resolved.","dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":30,"weight":0.13,"status":"fail","detail":"14 GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":32,"weight":0.08,"status":"fail","detail":"14 stars, 1 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"1d since push"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"MIT"},{"id":"documentation","label":"README/SKILL.md completeness","score":70,"weight":0.14,"status":"info","detail":"Public metadata needs stronger README/SKILL.md context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":28,"weight":0.12,"status":"fail","detail":"command execution surface, credential or environment access"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":18,"weight":0.07,"status":"fail","detail":"secrets or environment access, shell or command execution"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test"},{"id":"review_status","label":"Review status","score":66,"weight":0.05,"status":"info","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"fail","label":"GitHub adoption","detail":"14 GitHub stars"},{"status":"fail","label":"Stars/forks activity","detail":"14 stars, 1 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"1d since push"},{"status":"pass","label":"License clarity","detail":"MIT"},{"status":"info","label":"README/SKILL.md completeness","detail":"Public metadata needs stronger README/SKILL.md context"},{"status":"fail","label":"Dependency/runtime risk","detail":"command execution surface, credential or environment access"},{"status":"pass","label":"Install availability","detail":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"fail","label":"Permission surface","detail":"secrets or environment access, shell or command execution"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test"},{"status":"info","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"info","label":"OpenAgentSkill usage","detail":"No local usage activity yet"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Install command has no obvious high-risk pattern"],"warnings":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","GitHub adoption: 14 GitHub stars","Stars/forks activity: 14 stars, 1 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"],"evidence":{"stars":"14 GitHub stars","repoActivity":"14 stars, 1 forks","lastPushed":"1d since push","license":"MIT","repository":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","install":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet"},"installReadiness":{"ready":true,"command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","policy":"human_review_before_install","label":"Human review before install","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","1d since push","Financial domain: human review is required before use in a live investment workflow."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"high","label":"High review required","notes":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"human_review_before_install","reason":"Human review or sandbox validation is required before automatic installation."},"bestFor":["coding-agents","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace","Autonomous investment, trading, tax, or suitability decisions without a qualified human review"],"knownRisks":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","GitHub adoption: 14 GitHub stars","Stars/forks activity: 14 stars, 1 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, credential or environment access"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"outcome_stats":null,"safety":{"score":21,"level":"avoid_auto_install","label":"Avoid automatic install","safety_tier":{"tier":"blocked","label":"Blocked for auto-install","badge":"BLOCKED","summary":"This skill should not be selected by an agent without explicit human security review.","recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","auto_install_policy":"block","reasons":["Metadata combines secrets access with shell or command execution","High-risk permission hints: Shell or command execution, Secrets or environment access"]},"auto_install_allowed":false,"human_review_required":true,"blocked":true,"audit_risk":"needs_review","permission_hints":[{"id":"shell","label":"Shell or command execution","reason":"Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.","severity":"high"},{"id":"browser","label":"Browser automation","reason":"Skill may drive a browser or interact with web pages.","severity":"medium"},{"id":"network","label":"Network access","reason":"Skill likely fetches remote pages, APIs, repositories, or external services.","severity":"medium"},{"id":"filesystem","label":"Filesystem access","reason":"Skill may read or write project files, documents, generated artifacts, or local workspace state.","severity":"medium"},{"id":"secrets","label":"Secrets or environment access","reason":"Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.","severity":"high"},{"id":"database","label":"Database access","reason":"Skill may inspect schemas, query databases, or work with persistent stores.","severity":"medium"}],"policy_warnings":["High-risk permission hints: Shell or command execution, Secrets or environment access","Dependency or permission surface needs review"],"constraints_applied":{"max_risk":"medium","needs_install_command":true,"min_stars":0}},"safety_gate":{"tier":"blocked","label":"Blocked for auto-install","badge":"BLOCKED","auto_install_policy":"block","auto_install_allowed":false,"blocked":true,"human_review_required":true,"recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","reasons":["Metadata combines secrets access with shell or command execution","High-risk permission hints: Shell or command execution, Secrets or environment access"]},"eval":{"version":"openagentskill-skill-eval-v1","status":"failed","score":55,"risk_level":"high","decision":{"recommendation":"do_not_auto_install","reason":"Trust score: Sparse or weak trust signals. Treat this as an experimental candidate.","auto_install_allowed":false,"policy":"block","human_review_required":true},"blockers":["Trust score: Sparse or weak trust signals. Treat this as an experimental candidate.","Agent safety gate: This skill should not be selected by an agent without explicit human security review.","Permission surface: secrets or environment access, shell or command execution"],"warnings":["Audit score: Needs review","README/SKILL.md completeness: Public metadata needs stronger README/SKILL.md context","High-risk permission hints: Shell or command execution, Secrets or environment access","Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","SKILL.md does not explicitly list a 'Limitations' section, though the EOL note partially covers this.","Low GitHub adoption signal","Financial research output is not financial advice; require human review before any live investment decision.","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution"],"validation_plan":["Inspect repository, README/SKILL.md, license, and recent commits before production use.","Install in an isolated workspace or sandbox with no production secrets available.","Run the smallest representative task and record files touched, commands run, network access, and outputs.","Compare the selected skill against at least one alternative when the eval status is review or failed.","Promote only after the agent reports a successful verification result and unresolved warnings are accepted."],"checks":[{"id":"task_fit","label":"Task fit","status":"pass","score":84,"required_for_auto_install":true,"detail":"Task wording matches this skill metadata.","evidence":["Evaluate angularjs-unit-testing before installing it in an agent workflow","coding-agents","Browser automation workflows; Claude Code teams; builders willing to evaluate younger projects"]},{"id":"install_path","label":"Install path","status":"pass","score":92,"required_for_auto_install":true,"detail":"Install handoff is available.","evidence":["npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing"]},{"id":"install_safety","label":"Install command safety","status":"pass","score":92,"required_for_auto_install":true,"detail":"standard package or runtime install path","evidence":["npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing"]},{"id":"trust_score","label":"Trust score","status":"fail","score":57,"required_for_auto_install":true,"detail":"Sparse or weak trust signals. Treat this as an experimental candidate.","evidence":["High review required","14 GitHub stars","MIT"]},{"id":"audit_score","label":"Audit score","status":"warn","score":69,"required_for_auto_install":true,"detail":"Needs review","evidence":["Dependency or permission surface needs review"]},{"id":"agent_safety_gate","label":"Agent safety gate","status":"fail","score":21,"required_for_auto_install":true,"detail":"This skill should not be selected by an agent without explicit human security review.","evidence":["Do not auto-install. Inspect the source, dependencies, and permission surface first.","Metadata combines secrets access with shell or command execution"]},{"id":"readme_skillmd_completeness","label":"README/SKILL.md completeness","status":"warn","score":70,"required_for_auto_install":false,"detail":"Public metadata needs stronger README/SKILL.md context","evidence":["Usable metadata, review docs"]},{"id":"license_clarity","label":"License clarity","status":"pass","score":86,"required_for_auto_install":true,"detail":"MIT","evidence":["MIT"]},{"id":"recent_maintenance","label":"Recent maintenance","status":"pass","score":100,"required_for_auto_install":false,"detail":"1d since push","evidence":["1d since push"]},{"id":"permission_surface","label":"Permission surface","status":"fail","score":18,"required_for_auto_install":true,"detail":"secrets or environment access, shell or command execution","evidence":["Shell or command execution: high","Browser automation: medium","Network access: medium"]},{"id":"alternatives","label":"Alternatives available","status":"info","score":55,"required_for_auto_install":false,"detail":"No close alternatives were found in the current shortlist.","evidence":[]}],"endpoints":{"web":"https://www.openagentskill.com/skills/greedychipmunk-angularjs-unit-testing/evals","api":"/api/agent/evals?slug=greedychipmunk-angularjs-unit-testing","text":"/api/agent/evals?slug=greedychipmunk-angularjs-unit-testing&format=text"}},"agent_readable_metadata":{"version":"openagentskill-agent-metadata-v2","skill":{"slug":"greedychipmunk-angularjs-unit-testing","name":"angularjs-unit-testing","description":"Use this skill for AngularJS unit testing, maintenance, and migration tasks","category":"coding-agents","url":"https://www.openagentskill.com/skills/greedychipmunk-angularjs-unit-testing","repository":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","github_repo":"greedychipmunk/agent-skills"},"suited_tasks":["Browser automation workflows","Claude Code teams","builders willing to evaluate younger projects","Navigate pages","Click and type safely","Check visual and DOM state","Run test suites","Capture failures"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI","Browser agents","CLI"],"install":{"command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","ready":true,"targets":[{"id":"openagentskill-cli","label":"CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install greedychipmunk-angularjs-unit-testing"},{"id":"codex","label":"Codex","kind":"agent-prompt","value":"Install the \"angularjs-unit-testing\" agent skill from https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use this skill for AngularJS unit testing, maintenance, and migration tasks After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"greedychipmunk-angularjs-unit-testing\",\"task\":\"Install angularjs-unit-testing\",\"agent\":\"codex\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"claude-code","label":"Claude Code","kind":"agent-prompt","value":"Add \"angularjs-unit-testing\" as a Claude Code skill from https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. Skill purpose: Use this skill for AngularJS unit testing, maintenance, and migration tasks After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"greedychipmunk-angularjs-unit-testing\",\"task\":\"Install angularjs-unit-testing\",\"agent\":\"claude-code\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"cursor","label":"Cursor","kind":"agent-prompt","value":"Turn \"angularjs-unit-testing\" from https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. Skill purpose: Use this skill for AngularJS unit testing, maintenance, and migration tasks After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"greedychipmunk-angularjs-unit-testing\",\"task\":\"Install angularjs-unit-testing\",\"agent\":\"cursor\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."}],"handoff_url":"https://www.openagentskill.com/api/skills/greedychipmunk-angularjs-unit-testing/install","manifest_url":"https://www.openagentskill.com/api/registry/manifest/greedychipmunk-angularjs-unit-testing"},"trust":{"score":57,"label":"High review required","version":"trust-score-v4","install_policy":"human_review_before_install","evidence":{"stars":"14 GitHub stars","repoActivity":"14 stars, 1 forks","lastPushed":"1d since push","license":"MIT","repository":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","install":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet"},"outcome_evidence":{"total":0,"successes":0,"failures":0,"not_relevant":0,"success_rate":null,"recent_success_rate":null,"recent_failure_rate":null,"install_attempts":0,"install_success_rate":null,"risk_blocked":0,"setup_required":0,"avg_output_quality":null,"production_outcomes":0,"last_outcome_at":null,"label":"No agent outcome data yet"},"auto_install":{"allowed":false,"sandbox_required":true,"reason":"Human review or sandbox validation is required before automatic installation."},"best_for":["coding-agents","agent-skill"],"known_risks":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","GitHub adoption: 14 GitHub stars","Stars/forks activity: 14 stars, 1 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, credential or environment access"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"audit":{"score":69,"risk_level":"needs_review","risk_label":"Needs review","warnings":["Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","SKILL.md does not explicitly list a 'Limitations' section, though the EOL note partially covers this.","Low GitHub adoption signal","Financial research output is not financial advice; require human review before any live investment decision.","Quality score needs review"]},"safety_gate":{"tier":"blocked","label":"Blocked for auto-install","auto_install_policy":"block","auto_install_allowed":false,"human_review_required":true,"blocked":true,"recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first."},"quality":{"score":59,"label":"Promising"},"supply":{"track":"Coding and developer agents","scenario":"Testing and QA","maintenance":"1d since push","risk":"Needs review"},"alternative_skills":[],"do_not_use_when":["teams that need a vendor-supported SLA","production agents without a repository review","Low GitHub adoption signal","The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","No OpenAgentSkill engagement data yet","High-risk permission hints: Shell or command execution, Secrets or environment access","Dependency or permission surface needs review","Permission surface may require sandboxing"],"agent_contract":{"task_input":"Use angularjs-unit-testing in an agent workflow","recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","install_policy":"block","minimum_review_before_use":["Trust: 57/100 High review required","Audit: 69/100 Needs review","Safety: 21/100 Avoid automatic install","Review repository, license, install command, and permission surface before production use."],"expected_agent_output":{"selected_skill":"greedychipmunk-angularjs-unit-testing (angularjs-unit-testing)","install_command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","risk_summary":"Needs review; Blocked for auto-install; High review required","verification_result":"Report the smallest successful task, files touched, warnings, and any missing setup."}},"outcome_feedback":{"endpoint":"https://www.openagentskill.com/api/agent/outcome","method":"POST","requires_resolve_event_id":true,"event_id_source":"Use install_receipt.outcome_feedback.event_id or feedback.event_id returned by /api/agent/resolve for the current task.","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"payload_template":{"event_id":"<install_receipt.outcome_feedback.event_id or feedback.event_id from /api/agent/resolve>","skill_slug":"greedychipmunk-angularjs-unit-testing","task":"Use angularjs-unit-testing in an agent workflow","agent":"codex","outcome":"success","install_used":true,"risk_blocked":false,"setup_required":false,"task_success":true,"output_quality":4,"error_type":null,"human_review_required":false,"workspace":"sandbox","time_to_useful_ms":120000,"notes":"Report the smallest successful task, setup friction, files touched, and risk notes."}},"endpoints":{"web":"https://www.openagentskill.com/skills/greedychipmunk-angularjs-unit-testing","api":"https://www.openagentskill.com/api/agent/skills/greedychipmunk-angularjs-unit-testing","audit":"https://www.openagentskill.com/skills/greedychipmunk-angularjs-unit-testing/audit","eval":"https://www.openagentskill.com/api/agent/evals?slug=greedychipmunk-angularjs-unit-testing&task=Use%20angularjs-unit-testing%20in%20an%20agent%20workflow&max_risk=medium","resolve":"https://www.openagentskill.com/api/agent/resolve?task=Use%20angularjs-unit-testing%20in%20an%20agent%20workflow&agent=codex&max_risk=medium","receipt":"https://www.openagentskill.com/api/agent/receipt?task=Use%20angularjs-unit-testing%20in%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text","install":"https://www.openagentskill.com/api/skills/greedychipmunk-angularjs-unit-testing/install","manifest":"https://www.openagentskill.com/api/registry/manifest/greedychipmunk-angularjs-unit-testing"}},"machine_metadata":{"version":"openagentskill-agent-metadata-v2","skill":{"slug":"greedychipmunk-angularjs-unit-testing","name":"angularjs-unit-testing","description":"Use this skill for AngularJS unit testing, maintenance, and migration tasks","category":"coding-agents","url":"https://www.openagentskill.com/skills/greedychipmunk-angularjs-unit-testing","repository":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","github_repo":"greedychipmunk/agent-skills"},"suited_tasks":["Browser automation workflows","Claude Code teams","builders willing to evaluate younger projects","Navigate pages","Click and type safely","Check visual and DOM state","Run test suites","Capture failures"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI","Browser agents","CLI"],"install":{"command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","ready":true,"targets":[{"id":"openagentskill-cli","label":"CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install greedychipmunk-angularjs-unit-testing"},{"id":"codex","label":"Codex","kind":"agent-prompt","value":"Install the \"angularjs-unit-testing\" agent skill from https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use this skill for AngularJS unit testing, maintenance, and migration tasks After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"greedychipmunk-angularjs-unit-testing\",\"task\":\"Install angularjs-unit-testing\",\"agent\":\"codex\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"claude-code","label":"Claude Code","kind":"agent-prompt","value":"Add \"angularjs-unit-testing\" as a Claude Code skill from https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. Skill purpose: Use this skill for AngularJS unit testing, maintenance, and migration tasks After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"greedychipmunk-angularjs-unit-testing\",\"task\":\"Install angularjs-unit-testing\",\"agent\":\"claude-code\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"cursor","label":"Cursor","kind":"agent-prompt","value":"Turn \"angularjs-unit-testing\" from https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. Skill purpose: Use this skill for AngularJS unit testing, maintenance, and migration tasks After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"greedychipmunk-angularjs-unit-testing\",\"task\":\"Install angularjs-unit-testing\",\"agent\":\"cursor\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."}],"handoff_url":"https://www.openagentskill.com/api/skills/greedychipmunk-angularjs-unit-testing/install","manifest_url":"https://www.openagentskill.com/api/registry/manifest/greedychipmunk-angularjs-unit-testing"},"trust":{"score":57,"label":"High review required","version":"trust-score-v4","install_policy":"human_review_before_install","evidence":{"stars":"14 GitHub stars","repoActivity":"14 stars, 1 forks","lastPushed":"1d since push","license":"MIT","repository":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","install":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet"},"outcome_evidence":{"total":0,"successes":0,"failures":0,"not_relevant":0,"success_rate":null,"recent_success_rate":null,"recent_failure_rate":null,"install_attempts":0,"install_success_rate":null,"risk_blocked":0,"setup_required":0,"avg_output_quality":null,"production_outcomes":0,"last_outcome_at":null,"label":"No agent outcome data yet"},"auto_install":{"allowed":false,"sandbox_required":true,"reason":"Human review or sandbox validation is required before automatic installation."},"best_for":["coding-agents","agent-skill"],"known_risks":["The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","Financial research output is not financial advice; require human review before any live investment decision.","Low GitHub adoption signal","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","GitHub adoption: 14 GitHub stars","Stars/forks activity: 14 stars, 1 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, credential or environment access"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"audit":{"score":69,"risk_level":"needs_review","risk_label":"Needs review","warnings":["Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","SKILL.md does not explicitly list a 'Limitations' section, though the EOL note partially covers this.","Low GitHub adoption signal","Financial research output is not financial advice; require human review before any live investment decision.","Quality score needs review"]},"safety_gate":{"tier":"blocked","label":"Blocked for auto-install","auto_install_policy":"block","auto_install_allowed":false,"human_review_required":true,"blocked":true,"recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first."},"quality":{"score":59,"label":"Promising"},"supply":{"track":"Coding and developer agents","scenario":"Testing and QA","maintenance":"1d since push","risk":"Needs review"},"alternative_skills":[],"do_not_use_when":["teams that need a vendor-supported SLA","production agents without a repository review","Low GitHub adoption signal","The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","No OpenAgentSkill engagement data yet","High-risk permission hints: Shell or command execution, Secrets or environment access","Dependency or permission surface needs review","Permission surface may require sandboxing"],"agent_contract":{"task_input":"Use angularjs-unit-testing in an agent workflow","recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","install_policy":"block","minimum_review_before_use":["Trust: 57/100 High review required","Audit: 69/100 Needs review","Safety: 21/100 Avoid automatic install","Review repository, license, install command, and permission surface before production use."],"expected_agent_output":{"selected_skill":"greedychipmunk-angularjs-unit-testing (angularjs-unit-testing)","install_command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","risk_summary":"Needs review; Blocked for auto-install; High review required","verification_result":"Report the smallest successful task, files touched, warnings, and any missing setup."}},"outcome_feedback":{"endpoint":"https://www.openagentskill.com/api/agent/outcome","method":"POST","requires_resolve_event_id":true,"event_id_source":"Use install_receipt.outcome_feedback.event_id or feedback.event_id returned by /api/agent/resolve for the current task.","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"payload_template":{"event_id":"<install_receipt.outcome_feedback.event_id or feedback.event_id from /api/agent/resolve>","skill_slug":"greedychipmunk-angularjs-unit-testing","task":"Use angularjs-unit-testing in an agent workflow","agent":"codex","outcome":"success","install_used":true,"risk_blocked":false,"setup_required":false,"task_success":true,"output_quality":4,"error_type":null,"human_review_required":false,"workspace":"sandbox","time_to_useful_ms":120000,"notes":"Report the smallest successful task, setup friction, files touched, and risk notes."}},"endpoints":{"web":"https://www.openagentskill.com/skills/greedychipmunk-angularjs-unit-testing","api":"https://www.openagentskill.com/api/agent/skills/greedychipmunk-angularjs-unit-testing","audit":"https://www.openagentskill.com/skills/greedychipmunk-angularjs-unit-testing/audit","eval":"https://www.openagentskill.com/api/agent/evals?slug=greedychipmunk-angularjs-unit-testing&task=Use%20angularjs-unit-testing%20in%20an%20agent%20workflow&max_risk=medium","resolve":"https://www.openagentskill.com/api/agent/resolve?task=Use%20angularjs-unit-testing%20in%20an%20agent%20workflow&agent=codex&max_risk=medium","receipt":"https://www.openagentskill.com/api/agent/receipt?task=Use%20angularjs-unit-testing%20in%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text","install":"https://www.openagentskill.com/api/skills/greedychipmunk-angularjs-unit-testing/install","manifest":"https://www.openagentskill.com/api/registry/manifest/greedychipmunk-angularjs-unit-testing"}},"supply_profile":{"track":{"slug":"coding","label":"Coding and developer agents","shortLabel":"Coding","description":"Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills."},"scenario":{"label":"Testing and QA","description":"I need my agent to test a web app, reproduce bugs, and verify fixes.","useCases":[{"slug":"browser-automation","title":"Browser automation"},{"slug":"testing-qa","title":"Testing and QA"},{"slug":"workflow-automation","title":"Workflow automation"}]},"applicableAgents":["Claude Code","Browser agents","CLI","Codex","Cursor"],"install":{"ready":true,"command":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","primaryTarget":"CLI","targetCount":4},"githubQuality":{"stars":14,"starsLabel":"14","forks":1,"license":"MIT","qualityScore":59,"trustScore":57,"auditScore":69},"maintenance":{"status":"fresh","label":"1d since push","daysSincePush":1,"lastPushedAt":"2026-08-22T02:19:18+00:00"},"risk":{"level":"needs_review","label":"Needs review","requiresReview":true,"notes":["Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","SKILL.md does not explicitly list a 'Limitations' section, though the EOL note partially covers this."]},"coverageTags":["Coding","Testing and QA","coding-agents","agent-skill"]},"audit":{"audit_score":69,"risk_level":"needs_review","risk_label":"Needs review","quality_score":59,"trust_score":57,"maintenance_score":100,"security_score":66,"install_score":92,"warnings":["Dependency or permission surface needs review","Permission surface may require sandboxing","Financial research output is not financial advice; require human review before any live investment decision","The SKILL.md excerpt appears truncated at 'Test Organization' – ensure the full document is present and complete.","SKILL.md does not explicitly list a 'Limitations' section, though the EOL note partially covers this.","Low GitHub adoption signal","Financial research output is not financial advice; require human review before any live investment decision.","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","GitHub adoption: 14 GitHub stars","Stars/forks activity: 14 stars, 1 forks; issue activity unavailable in current metadata","Dependency/runtime risk: command execution surface, credential or environment access"]},"quality_signals":{"model":"v2","star_score":8.23,"usage_score":0,"review_score":5.7,"metadata_score":3,"freshness_score":15},"platforms":["Claude Code","Browser agents"],"use_cases":[{"slug":"browser-automation","title":"Browser automation","url":"https://www.openagentskill.com/use-cases/browser-automation"},{"slug":"testing-qa","title":"Testing and QA","url":"https://www.openagentskill.com/use-cases/testing-qa"},{"slug":"workflow-automation","title":"Workflow automation","url":"https://www.openagentskill.com/use-cases/workflow-automation"},{"slug":"github-automation","title":"GitHub automation","url":"https://www.openagentskill.com/use-cases/github-automation"}],"stacks":[{"slug":"browser-qa-agent","title":"Browser QA agent","url":"https://www.openagentskill.com/collections/browser-qa-agent"},{"slug":"research-report-agent","title":"Research report agent","url":"https://www.openagentskill.com/collections/research-report-agent"},{"slug":"web-data-pipeline","title":"Web data pipeline","url":"https://www.openagentskill.com/collections/web-data-pipeline"}],"install":"npx skills add greedychipmunk/agent-skills --skill angularjs-unit-testing","install_targets":[{"id":"openagentskill-cli","label":"CLI","title":"OpenAgentSkill CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install greedychipmunk-angularjs-unit-testing","description":"Resolve policy, run the source installer safely, and report a verified install receipt.","copyLabel":"Copy command"},{"id":"codex","label":"Codex","title":"Codex install prompt","kind":"agent-prompt","value":"Install the \"angularjs-unit-testing\" agent skill from https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Use this skill for AngularJS unit testing, maintenance, and migration tasks After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"greedychipmunk-angularjs-unit-testing\",\"task\":\"Install angularjs-unit-testing\",\"agent\":\"codex\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.","description":"Give Codex a repo-aware install prompt when the skill is not available through a local CLI.","copyLabel":"Copy prompt"},{"id":"claude-code","label":"Claude Code","title":"Claude Code skill prompt","kind":"agent-prompt","value":"Add \"angularjs-unit-testing\" as a Claude Code skill from https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. Skill purpose: Use this skill for AngularJS unit testing, maintenance, and migration tasks After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"greedychipmunk-angularjs-unit-testing\",\"task\":\"Install angularjs-unit-testing\",\"agent\":\"claude-code\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.","description":"Use this prompt to ask Claude Code to add the skill and explain the local activation steps.","copyLabel":"Copy prompt"},{"id":"cursor","label":"Cursor","title":"Cursor rule prompt","kind":"agent-prompt","value":"Turn \"angularjs-unit-testing\" from https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. Skill purpose: Use this skill for AngularJS unit testing, maintenance, and migration tasks After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"greedychipmunk-angularjs-unit-testing\",\"task\":\"Install angularjs-unit-testing\",\"agent\":\"cursor\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.","description":"Use this when installing as Cursor project rules or reusable agent instructions.","copyLabel":"Copy prompt"}],"repository":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","github_repo":"greedychipmunk/agent-skills","version":"1.0.0","license":"MIT","urls":{"web":"https://www.openagentskill.com/skills/greedychipmunk-angularjs-unit-testing","repository":"https://github.com/greedychipmunk/agent-skills/tree/main/angularjs-unit-test","api":"/api/agent/skills/greedychipmunk-angularjs-unit-testing","install_api":"/api/skills/greedychipmunk-angularjs-unit-testing/install"},"meta":{"created_at":"2026-08-22T04:36:14.177261+00:00","updated_at":"2026-08-22T04:36:14.177261+00:00","agent_friendly":true}}