neo-vue — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited neo-vue (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
本技能為 Agent 提供 Vue 3 (Composition API) 與 Pinia 狀態管理的開發與審查指南。它協助產出符合 Vue Style Guide 優先級 A/B 規則的程式碼,避開常見響應式陷阱,並生成一致、強型別的單一檔案元件(SFC)。
props 或由 reactive() 定義的物件(例如:const { name } = props 或 const { x } = state),這會徹底失去 Vue 響應式追蹤!toRefs(props) 或 toRef(props, 'name') 來保持其響應性。const { user } = useAuthStore())會使 state 失去雙向響應!storeToRefs(store) 來解構 state;而 action 則可以直接正常解構。modelValue 屬性並觸發 update:modelValue 事件,容易寫錯。defineModel() 巨集宣告雙向綁定,降低屬性與事件不一致的風險。v-if 的優先級高於 v-for,這意味著 v-if 的條件判斷無法存取到 v-for 迴圈中的變數,會直接導致編譯或執行期報錯!<template> 標籤包裹 v-for,再於內部子節點使用 v-if,或者預先使用 computed 計算屬性對陣列進行過濾。Progress:
package.json,確定 Vue 版本(確認為 Vue 3.x)以及是否安裝了 pinia、vue-router。lang="ts")與 Scoped CSS。在進行 Vue 3 開發或審查前,必須動態載入深度知識庫:
references/coding-style.md 以確認組件命名(必須為多字詞 PascalCase)、屬性定義等官方優先級規範。references/anti-patterns.md 以避開 props mutation、computed 副作用等反模式。references/patterns.md 以獲得 Composables 的合理拆分與 Pinia Setup Stores 的架構設計。在編寫程式碼前,先思考以下設計:
reactive(),以確保存取 .value 的一致性並避免解構失活。ref)還是全局狀態(用 Pinia Setup Store)。<script setup> 語法,並依專案設定優先加入 lang="ts"。assets/Vue3SFCComponentTemplate.vue 作為標準 Vue 3 元件的排版範例。computed 中做任何 state 修改或 API 調用等 Side Effects。props 進行賦值與修改。v-for 的 key 綁定使用了穩定的唯一 ID,而不是陣列索引 index。生成新元件時,依照以下一致結構輸出;更多實作細節請參閱 assets/Vue3SFCComponentTemplate.vue:
<template>
<div class="vue-expert-component">
<!-- 模板內容 -->
</div>
</template>
<script setup lang="ts">
import { ref, computed } from 'vue';
// 1. 定義屬性與事件 (Props, Emits, Models)
const props = defineProps<{
title: string;
}>();
const emit = defineEmits<{
(e: 'change', value: string): void;
}>();
// Vue 3.4+ 雙向綁定巨集
const modelValue = defineModel<string>();
// 2. 狀態定義 (State)
const count = ref(0);
// 3. 計算屬性 (Computed)
const doubleCount = computed(() => count.value * 2);
// 4. 方法定義 (Methods)
function handleAction() {
emit('change', 'action-triggered');
}
</script>
<style scoped>
/* 必須使用 scoped 以免全域樣式污染,並優先選用 class 選擇器 */
.vue-expert-component {
display: flex;
flex-direction: column;
}
</style>~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.