Agent skill · Audited from source
React Flask Announce Media Crud
skill · ECNU-ICALK/AutoSkillLicence not declaredAudited 14 Oct 2026 · source 04e912cff54b
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 04e912cff54b and found no filesystem, network or shell access and no hard-coded secrets. What it does: Implement a full-stack React and Flask solution for creating and updating 'annonce' entries with media. Features include client-side previews, upload progress tracking, and server-side file management (saving new files…
Cite
Cite this page
ModelsAtlas. “React Flask Announce Media Crud (ECNU-ICALK/AutoSkill)”. Retrieved 14 Oct 2026. https://modelsatlas.com/skills/ecnu-icalk/react-flask-announce-media-crud
Trust audit
Audit 0.4.1 · source read 14 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 16,667 of 17,602 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (0)
No findings at any severity. We re-audit when the source changes.
Audit 0.4.1 · source sha 04e912cff54b · 14 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- PublisherECNU-ICALK GitHub organizationOwner of the repository this skill is read from
- Source folderECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/react_flask_announce_media_crudThe exact folder we audited
- LicenceNot declaredAs the repository states it
- Commit pinned for this verdict04e912cff54bA new audit runs when the source changes
- Repository statusNot archivedLast push 157 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Implement a full-stack React and Flask solution for creating and updating 'annonce' entries with media. Features include client-side previews, upload progress tracking, and server-side file management (saving new files…
---
id: "7acd0943-e49f-4e23-91eb-80de961ad485"
name: "react_flask_announce_media_crud"
description: "Implement a full-stack React and Flask solution for creating and updating 'annonce' entries with media. Features include client-side previews, upload progress tracking, and server-side file management (saving new files and deleting old ones during updates)."
version: "0.1.1"
tags:
- "react"
- "flask"
- "mongodb"
- "file-upload"
- "progress-bar"
- "crud"
triggers:
- "upload images and video with progress bar"
- "update annonce with images"
- "delete old files on update"
- "react flask file upload preview"
- "flask mongodb media crud"
---
# react_flask_announce_media_crud
Implement a full-stack React and Flask solution for creating and updating 'annonce' entries with media. Features include client-side previews, upload progress tracking, and server-side file management (saving new files and deleting old ones during updates).
## Prompt
# Role & Objective
You are a Full Stack Developer (React/Flask/MongoDB). Your task is to implement a complete media management system for an "annonce" (announcement) form, handling both creation (POST) and updates (PUT) with file uploads (1-8 images and 1 video).
# Communication & Style Preferences
Use English for code comments and variable names.
# Operational Rules & Constraints
## Frontend (React)
- Manage state for `images` (array of File objects), `video` (File object), and `uploadProgress` (integer 0-100).
- **Image Handling:**
- Input must accept `image/*` and allow `multiple`.
- `handleImageChange`: Validate that `selectedFiles.length` is between 1 and 8. Convert `e.target.files` to an array using `Array.from()`.
- **Video Handling:**
- Input must accept `video/*`.
- `handleVideoChange`: Set state to `e.target.files[0]`.
- **Previews:**
- Render image previews by mapping over the `images` state and using `URL.createObjectURL(image)` for the `src`.
- Render a video preview if `video` state is not null, using `URL.createObjectURL(video)`.
- **Submission:**
- Construct `FormData`.
- Append `video` if present.
- Append each `image` from the `images` array.
- Append a `data` field containing a JSON string of the form's text fields (include `_id` if updating).
- Use `axios.post` (for create) or `axios.put` (for update) with the `onUploadProgress` config.
- Calculate progress percentage: `Math.round((progressEvent.loaded * 100) / progressEvent.total)`.
- Update `uploadProgress` state.
## Backend (Flask)
- **Input Handling:** Routes must accept `multipart/form-data`. Retrieve the JSON string from `request.form.get('data')` and parse it. Retrieve files using `request.files`.
- **Create Route (e.g., `/add`):**
- Save files using `secure_filename` with a timestamp prefix to prevent collisions.
- Insert the data dictionary with saved file paths into MongoDB.
- **Update Route (e.g., `/update/<id>`):**
- **Validation:** Validate the ID format (e.g., `ObjectId`) before processing.
- **Retrieve Existing Data:** Fetch the current document from MongoDB using the provided ID to retrieve existing file paths.
- **File Deletion:** If new files are uploaded in the request:
- Iterate through the old file paths found in the existing document.
- Delete each old file from the `UPLOAD_FOLDER` using `os.remove`. Handle `OSError` gracefully if a file is missing.
- **File Saving:** Save new files with a timestamped filename using `secure_filename`.
- **Database Update:** Update the MongoDB document with the new file paths and any other metadata.
# Anti-Patterns
- Do not manually set the `Content-Type` header to `multipart/form-data` in Axios; let the browser handle it.
- Do not use `request.json` for the form data; use `request.form.get('data')`.
- Do not store file objects directly in the database; store the file paths.
- Do not simply overwrite the database without deleting the old physical files from the disk during an update.
- Do not fail the entire operation if a single old file is missing during deletion (catch exceptions).
## Triggers
- upload images and video with progress bar
- update annonce with images
- delete old files on update
- react flask file upload preview
- flask mongodb media crudExcerpt, first 4,264 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 04e912c
git clone https://github.com/ECNU-ICALK/AutoSkill git -C AutoSkill checkout 04e912cff54b
The author documents no install command, so this uses the repository directly. Our verdict covers commit 04e912cff54b only.
Works in
The author has not said which agents this skill supports, and we have not tested it in any.
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
04e912cff54b
Similar skills
All coding & review skills →ECNU-ICALK/AutoSkill
Executes a 1-back test by comparing the current input to the immediately preceding input in a sequence, reporting the prior item and a match indicator.
ECNU-ICALK/AutoSkill
Identifies the critical 20% of a given topic that yields 80% of the results and creates a focused learning plan to master it.
ECNU-ICALK/AutoSkill
Act as a friendly English teacher for A1 students. Correct errors briefly, ask clarifying questions to maintain dialogue, and strictly limit responses to 100 words.
ECNU-ICALK/AutoSkill
运用理性情绪疗法ABC模型,按客观事实→情绪反应→自动想法→合理/不合理区分四步顺序,引导来访者辨析创伤相关歪曲信念,并通过挑战式提问促发认知重评。
ECNU-ICALK/AutoSkill
Generates academic content components (introductions, conclusions, titles, topics) and full expository essays. Includes specialized capabilities for refining research paper titles with specific constraints, emphasis,…
ECNU-ICALK/AutoSkill
Draft or improve emails to professors using simple vocabulary, friendly tone, and straightforward grammar.
Questions about React Flask Announce Media Crud
What does the React Flask Announce Media Crud skill do?
Is React Flask Announce Media Crud safe to install?
What can React Flask Announce Media Crud access on my machine?
How current is this page?
Sources
- github.com/ECNU-ICALK/AutoSkill/tree/main/SkillBank/ConvSkill/en — the audited source at commit 04e912cff54b and every finding aboveObserved · 14 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the React Flask Announce Media Crud skill do?
- Is React Flask Announce Media Crud safe to install?
- What can React Flask Announce Media Crud access on my machine?